首頁  >  文章  >  後端開發  >  淺談numpy數組的幾種排序方式_python

淺談numpy數組的幾種排序方式_python

韦小宝
韦小宝原創
2017-12-16 13:32:493237瀏覽

這篇文章主要介紹了淺談numpy數組的幾種排序方式,涉及對numpy的簡單介紹和創建數組的方式,具有一定借鑒價值,對numpy感興趣的朋友可以參考下。

簡單介紹

NumPy系統是Python的一種開源的陣列計算擴展。這種工具可用於儲存和處理大型矩陣,比Python本身的嵌套列表(nested list structure)結構要高效的多(該結構也可以用來表示矩陣(matrix))。

建立陣列

建立1維數組:

data = np.array([1,3,4,8])  

查看數組維度

data.shape

查看數組類型

data.dtype

透過索引取得或修改陣列元素

data[1] 取得元素<br>data[1] = 'a' 修改元素 

建立二維陣列

#data = np.array([[1,2,3],[4, 5,6]]) 兩個元素皆為列表0c6dc11e160d3b678d68754cc175188a2.data = np.arange(10) 與python的range一樣,range傳回列表,arange傳回array型別的一個數組0c6dc11e160d3b678d68754cc175188a 3.data2 = data.reshape(2,5) 傳回一個2*5的數組,他不是拷貝數組是引用,只是傳回數組的不同視圖,data改變data2也會改變

#建立特殊陣列

data = np.zeros((2,2)) 建立2*2全為0的2維數組<br>data = np.ones(( 2,3,3,)) 建立全為1的三維數組<br>data = np.eye(4) 建立4*4的對角線數組,對角元素為1,其它都為0<br>

#陣列轉換

data = np.arange(16).reshape(4,4) 將0-16的移位陣列轉換為4 *4的陣列 

排序方式

#說明:經常需要對陣列或list進行排序,python提供了好幾種排序的函數,下面說明下特徵;

二維陣列a:

1 4
3 1

1、ndarray.sort(axis= -1,kind='quicksort',order=None)

使用方法:a.sort

參數說明:

axis:排序沿著陣列的方向,0表示按行,1表示按列

kind:排序的演算法,提供了快排、混排、堆排

order:不是指的順序,以後用的時候再去分析這個

作用效果:對陣列a排序,排序後直接改變了a

例如:

>>a.sort(axis=1)
>>print a

1 4
1 3

2、

numpy.sort(a,axis=-1,kind='quicksort',order=None)

使用方法:

numpy.sort(a)

參數說明:

a:要排序的數組,其他同1

作用效果:對數組a排序,傳回一個排序後的陣列(與a相同維度),a不變

例如:

#

>>print numpy.sort(a,axis=1)
1 4
1 3
>>print a
1 4
3 1

3、numpy.argsort (a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.argsort(a)

參數說明:同2

#作用效果:對陣列a排序,傳回一個排序後索引,a不變

例如:

#

>>print numpy.argsort(a,axis=1)
0 1
1 0

##4、

sorted (iterable,cmp=None,key=None,reverse=False)

#說明:內建的排序函數,對list,字典等等可以使用

iterable:可迭代類型;

cmp:用於比較的函數,比較什麼由key決定,有預設值,迭代集合中的一項;

key:用列表元素的某個屬性和函數進行作為關鍵字,有預設值,迭代集合中的一項;

reverse:排序規則.reverse=True或reverse=False,預設False(從小到大)。

傳回值:是一個經過排序的可迭代類型,與iterable一樣;

例如:b是一個字典b:{' a':2,'c':1,'b':3}

對b進行排序:

>>c=sorted(b.iteritems(),key=operator.itemgetter(1),reverse=False)
>>print c[(&#39;c&#39;, 1), (&#39;a&#39;, 2), (&#39;b&#39;, 3)]
可見:返回的是一個list

總結

以上就是本文關於淺談numpy數組的幾種排序方式的全部內容,希望對大家有所幫助。有興趣的朋友可以繼續參考本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關推薦:

##########Python科學計算- Numpy快速入門########## #####為什麼numpy的array那麼快? ############Python NumPy函式庫安裝使用筆記######

以上是淺談numpy數組的幾種排序方式_python的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn