當前位置:編程學習大全網 - 源碼下載 - 淺談numpy數組的幾種排序方式_python

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

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

簡單介紹

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

創建數組

創建1維數組:

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

查看數組維度

data.shape

查看數組類型

data.dtype

通過索引獲取或修改數組元素

data[1] 獲取元素

data[1] = 'a' 修改元素

創建二維數組

data = np.array([[1,2,3],[4,5,6]]) 兩個元素均為列表<br>2.data = np.arange(10) 與python的range壹樣,range返回列表,arange返回array類型的壹個數組<br>3.data2 = data.reshape(2,5) 返回壹個2*5的數組,他不是拷貝數組是引用,只是返回數組的不同視圖,data改變data2也會改變

創建特殊數組

data = np.zeros((2,2)) 創建2*2全為0的2維數組

data = np.ones((2,3,3,)) 創建全為1的三維數組

data = np.eye(4) 創建4*4的對角數組,對角元素為1,其它都為0

數組轉換

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

排序方式

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

二維數組a:

1 4

3 11、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 32、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 13、numpy.argsort(a,axis=-1,kind='quicksort',order=None)

使用方法:numpy.argsort(a)

參數說明:同2

作用效果:對數組a排序,返回壹個排序後索引,a不變

例如:

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

0 1

1 04、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[('c', 1), ('a', 2), ('b', 3)]可見:返回的是壹個list

總結

  • 上一篇:什麽是壓縮包
  • 下一篇:如何刪除版權,如何卸載版權
  • copyright 2024編程學習大全網