這篇“Numpy的切片索引與高級索引怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Numpy的切片索引與高級索引怎么使用”文章吧。
沁源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
ndarray對象的內(nèi)容可以通過切片來訪問,與 Python 中 list 的切片操作完全一樣。 使用slice 并設置start, stop 及 step 參數(shù)進行;舉例如下:
a = slice(2,9,2) # 2為起點,9為終點,間隔為2 b = np.arange(0,10,1) # b: [0 1 2 3 4 5 6 7 8 9] print(b[a]) # 輸出:[2 4 6 8]
使用方式與slice相同,上面的例子可以書寫為:
b = np.arange(0,10,1) print(b[2:9:2]) # 輸出:[2 4 6 8]
注意:
切片時,中括號[]內(nèi)數(shù)字之間的符號為冒號:, 參數(shù)為:start:stop:step
若中括號[]內(nèi)只有一個數(shù)字,則返回該索引對應的值;例如:b[2] 則返回 2
若中括號[]為[2:],則返回起始位置與后面的所有值;例如:b[2:] 則返回 [2 3 4 5 6 7 8 9]
若中括號[]為[2:6],則返回起始位置與終止位置之間的所有值;例如:b[2:6],返回[2 3 4 5]
冒號:代替所有舉例如下:
a = np.array([[1,2,3],[3,4,5],[4,5,6]]) print (a[:,1]) # 第2列元素,輸出:[2 4 5] print (a[1,:]) # 第2行元素,輸出:[3 4 5] print (a[:,1:]) # 第2列及剩下的所有元素,輸出:[[2 3] [4 5] [5 6]]
在高級索引中,最為有用的便是:布爾索引; 簡單來說就是,在切片的中括號內(nèi)[],使用篩選條件,該條件會返回一個布爾數(shù)據(jù)作為Mask,將需要的數(shù)據(jù)選取出來;實際上,我們并不需要知道Numpy是如何選取出來數(shù)據(jù)的,只要只要如何使用即可;舉例如下:
b = np.arange(0,10,1) print(b[b>5]) # [6 7 8 9] print(b[(b>5) & (b<8)]) # [6 7]
注意點一:應用多個條件時,可以使用 &, 各個條件需要放在()內(nèi);如上例中的:b[(b>5) & (b<8)]注意點二:布爾索引不一定要對數(shù)組中的所有元素,也可以針對某一行或者某一列進行篩選;舉例如下:
a = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]]) print(a[(a[:,0]>2) & (a[:,1]<10)]) # 輸出:[[4 5 6] [7 8 9]] # (a[:,0]>2) 選擇出第一列大于2的所有行; # (a[:,1]<10) 選擇出第二列小于10的所有行,然后取交集得到最后結(jié)果;
花式索引(Fancyindexing)是一個NumPy術(shù)語,它指的是利用整數(shù)數(shù)組進行索引。假設我們有一個8×4數(shù)組:
a = np.arange(32).reshape(8,4)

通過花式索引,我們可以進行如下操作:
選出指定的行,例如選出第1,3,5,7 行: print(a[[1,3,5,7]]), 輸出為:

也可以傳入負數(shù),選出倒數(shù)的行,例如選出最后3行: print(a[[-3,-2,-1]]), 輸出為:

也可以傳入多個索引數(shù)組,返回對應值的一維數(shù)組,例如選出 (2,2), (3,3), (5,3) 三個數(shù): print(a[[2,3,5],[2,3,3]]) , 輸出為:

選出指定的列,例如選出第0,1, 3列:print(a[:,[1,2,3]]) , 輸出為:

選出指定的行與指定的列,例如選出第0,2,3列,第2,5,6 行的一個3*3數(shù)組; print(a[[2,5,6]][:,[0,2,3]]), 輸出為:

在上面的基礎上,還可以通過交換輸入的順序,調(diào)整輸出的順序,例如:想要調(diào)換2,3列的順序,同時調(diào)換 2,6 行的順序;print(a[[6,5,2]][:,[0,3,2]])

以上就是關(guān)于“Numpy的切片索引與高級索引怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站欄目:Numpy的切片索引與高級索引怎么使用
分享地址:http://www.chinadenli.net/article6/geehog.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、ChatGPT、網(wǎng)站設計公司、營銷型網(wǎng)站建設、電子商務、服務器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)