我想创建一个大小为 (10000, 50) 的数组(我提到大小是因为效率很重要),然后:
- 将前 5000 行按升序排序
- 将后 5000 行按降序排序。
这是我的代码:
samples = 10 # I'm going to increase it 10000
sampleLength = 4 # I'm going to increase it 50
halfSamples = int(samples/2)
xx = numpy.multiply(10, numpy.random.random((samples, sampleLength)))
xx[0:halfSamples,0:sampleLength]=numpy.sort(xx[0:halfSamples,0:sampleLength],axis=1)
xx[halfSamples:samples,0:sampleLength]=numpy.sort(xx[halfSamples:samples,0:sampleLength],axis=1)
这将对数组的一半按升序排序,唯一找不到的是在最后一行中给出参数以使其按降序排列。我已经根据此链接尝试过:Reverse sort a 2d numpy array in python
xx[halfSamples:samples,0:sampleLength]=numpy.sort(xx[halfSamples:samples,0:sampleLength:-1],axis=1)
但是遇到了一个错误:
ValueError: could not broadcast input array from shape (5,0) into shape (5,4)
谢谢
[:,::-1]
吗?该操作将对该行的数组进行反转。 - Divakar