2017-07-11 87 views
0

下面我有一個簡單的程序:numpy的排序函數返回無

import numpy as np 

arr = np.random.randn(8) 
new = arr.sort() 
new1 = np.sort(arr) 
print new 
print new1 

我預計這兩個新的陣列是相同的有序排列,而是新是無,名new1是我所期待的,是什麼兩種排序方法的區別是什麼?

+5

['sort()'方法](https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.sort。 HTML)行爲*就地*。 –

回答

2

the documentationnumpy.ndarray.sort

排序陣列,就地。

如果您想要原始數組的排序副本,而不是按原樣排序,則應使用numpy.sort,它會返回副本,如您所見。

1

np.random.randn(8)將返回一個數組,並arr.sort()將返回NonenewNone,因爲.sort()製成,所以你必須使用sorted(arr)排序在Python數組只列出了不能與數組工作。如果你這樣做,sorted(arr)np.sort(arr)之間沒有太大的差別