Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python,numpy排序数组_Python_Numpy - Fatal编程技术网

Python,numpy排序数组

Python,numpy排序数组,python,numpy,Python,Numpy,我正在使用numpy,并且有一个数组(ndarray类型),其中包含一些值。此阵列的形状为1000x1500。我重塑了它 brr = np.reshape(arr, arr.shape[0]*arr.shape[1]) 当我尝试 brr.reverse() AttributeError: ‘numpy.ndarray’ object has no attribute ‘reverse’ 获取错误。 如何对该数组进行排序?如果您只想将其反转: brr[:] = brr[::-1] 实际上,这

我正在使用numpy,并且有一个数组(ndarray类型),其中包含一些值。此阵列的形状为1000x1500。我重塑了它

brr = np.reshape(arr, arr.shape[0]*arr.shape[1])
当我尝试

brr.reverse()
AttributeError: ‘numpy.ndarray’ object has no attribute ‘reverse’
获取错误。
如何对该数组进行排序?

如果您只想将其反转:

brr[:] = brr[::-1]
实际上,这沿轴0反转。如果阵列有多个轴,也可以在任何其他轴上进行恢复

要按相反顺序排序,请执行以下操作:

>>> arr = np.random.random((1000,1500))
>>> brr = np.reshape(arr, arr.shape[0]*arr.shape[1])
>>> brr.sort()
>>> brr = brr[::-1]
>>> brr
array([  9.99999960e-01,   9.99998167e-01,   9.99998114e-01, ...,
     3.79672182e-07,   3.23871190e-07,   8.34517810e-08])
或者,使用argsort:

>>> arr = np.random.random((1000,1500))
>>> brr = np.reshape(arr, arr.shape[0]*arr.shape[1])
>>> sort_indices = np.argsort(brr)[::-1]
>>> brr[:] = brr[sort_indices]
>>> brr
array([  9.99999849e-01,   9.99998950e-01,   9.99998762e-01, ...,
         1.16993050e-06,   1.68760770e-07,   6.58422260e-08])

尝试按降序排序

import numpy as np
a = np.array([1,3,4,5,6])
print -np.sort(-a)

要按降序对1d数组进行排序,请将reverse=True传递给排序后的
。
如前所述,
sorted
将首先复制列表,然后反向排序

import numpy as np
import random
x = np.arange(0, 10)
x_sorted_reverse = sorted(x, reverse=True)

您希望
reverse()
做什么?这并不能解决您的问题,但为了使代码更整洁、更高效,您可以使用
arr.size
而不是
arr.shape[0]*arr.shape[1]
。我想按降序排序。顺便说一句,sort()给出相同的错误否,它未排序,我必须对其进行排序谢谢!尝试argsort()时运气不佳。不知道[::-1]
brr=np。排序(brr)[::-1]
sorted使用python的iterable排序,它将首先将所有数据复制到列表中,然后反向进行排序。虽然这确实会导致对数据进行反向排序,但在numpy中不会这样做,并且通常会消除使用numpy的任何好处。谢谢分享,Erik。我把它加到了答案上。