我有一个简单的程序:
import numpy as np
arr = np.random.randn(8)
new = arr.sort()
new1 = np.sort(arr)
print new
print new1
我希望两个新数组与排序数组相同,但new
是None
,new1
是我所期望的,两个方法之间有什么区别排序
答案 0 :(得分:3)
来自numpy.ndarray.sort
的{{1}}:
就地对数组进行排序。
如果你想要一个原始数组的排序副本,而不是就地排序,你应该使用numpy.sort
,它会返回一个副本,如你所见。
答案 1 :(得分:1)
np.random.randn(8)
将返回一个数组,arr.sort()
将返回None
,即new
为None
,因为.sort()
仅用于列表不使用数组,因此您必须使用sorted(arr)
在python中对数组进行排序。如果您这样做,sorted(arr)
和np.sort(arr)