機器學習篇—Numpy數值計算基礎(下)

Numpy庫是支持 Python 語言的數值計算第三方庫,其擁有強大的多維數組處理與矩陣運算能力;是機器學習的必不可少的工具。本文是在學習了Numpy數值計算課程之後,做的些許筆記。

Numpy數組的索引與切片

數組索引

//一維數據索引
data[x] //索引一個數
data[[x,y,z]]//索引多個數
//二維數據索引
data[x,y]//索引一個數
data[[x1,x2],[y1,y2]]//索引兩個數
//三維數據索引
data[[x1,x2],[y1,y2],[z1,z2]]

數組切片

//一維數據的索引
Ndarray[start:stop:step] // 與python裏的list切片操作是一樣
//[start:stop:step] 分別代表 [起始索引:截至索引:步長]
//多維數據的索引,只需用逗號 , 分割不同維度
data[row1:row2,column1:column2] //二維數組切片,三維類似

Numpy數組排序、搜索及計數

//排序
numpy.sort(a, axis=-1, kind='quicksort', order=None)
//a:數組。
//axis:要排序的軸。如果爲None,則在排序之前將數組鋪平。默認值爲 -1,沿最後一個軸排序。
//kind:{'quicksort''mergesort''heapsort'},排序算法。默認值爲 quicksort。
示例:
a = np.random.randn(20).reshape(4, 5)
array([[-0.58130556,  0.14581941,  0.80553632, -1.87284741, -0.41056494],
       [ 0.10856851, -0.66159494,  0.52620339, -0.15663751,  0.23842936],
       [ 0.24581893,  0.85822414,  1.96948944, -0.33772201,  0.19478995],
       [-1.18558649, -0.88364367, -0.80021437, -1.27308585, -0.61206656]])
結果:
np.sort(a)
array([[-1.87284741, -0.58130556, -0.41056494,  0.14581941,  0.80553632],
       [-0.66159494, -0.15663751,  0.10856851,  0.23842936,  0.52620339],
       [-0.33772201,  0.19478995,  0.24581893,  0.85822414,  1.96948944],
       [-1.27308585, -1.18558649, -0.88364367, -0.80021437, -0.61206656]])
//其他方法
//numpy.lexsort(keys ,axis):使用多個鍵進行間接排序。
//numpy.argsort(a ,axis,kind,order):沿給定軸執行間接排序。
//numpy.msort(a):沿第 1 個軸排序。
//numpy.sort_complex(a):針對複數排序。
//搜索和計數
argmax(a ,axis,out):返回數組中指定軸的最大值的索引。
nanargmax(a ,axis):返回數組中指定軸的最大值的索引,忽略 NaN。
argmin(a ,axis,out):返回數組中指定軸的最小值的索引。
nanargmin(a ,axis):返回數組中指定軸的最小值的索引,忽略 NaN。
argwhere(a):返回數組中非 0 元素的索引,按元素分組。
nonzero(a):返回數組中非 0 元素的索引。
flatnonzero(a):返回數組中非 0 元素的索引,並鋪平。
where(條件,x,y):根據指定條件,從指定行、列返回元素。
searchsorted(a,v ,side,sorter):查找要插入元素以維持順序的索引。
extract(condition,arr):返回滿足某些條件的數組的元素。
count_nonzero(a):計算數組中非 0 元素的數量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章