這篇“Numpy的切片索引與高級(jí)索引怎么使用”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Numpy的切片索引與高級(jí)索引怎么使用”文章吧。
沁源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
ndarray對(duì)象的內(nèi)容可以通過切片來訪問,與 Python 中 list 的切片操作完全一樣。 使用slice 并設(shè)置start, stop 及 step 參數(shù)進(jìn)行;舉例如下:
a = slice(2,9,2) # 2為起點(diǎn),9為終點(diǎn),間隔為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]
注意:
切片時(shí),中括號(hào)[]
內(nèi)數(shù)字之間的符號(hào)為冒號(hào):
, 參數(shù)為:start:stop:step
若中括號(hào)[]
內(nèi)只有一個(gè)數(shù)字,則返回該索引對(duì)應(yīng)的值;例如:b[2]
則返回 2
若中括號(hào)[]
為[2:]
,則返回起始位置與后面的所有值;例如:b[2:]
則返回 [2 3 4 5 6 7 8 9]
若中括號(hào)[]
為[2:6]
,則返回起始位置與終止位置之間的所有值;例如:b[2:6]
,返回[2 3 4 5]
冒號(hào):
代替所有舉例如下:
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]]
在高級(jí)索引中,最為有用的便是:布爾索引; 簡(jiǎn)單來說就是,在切片的中括號(hào)內(nèi)[],使用篩選條件,該條件會(huì)返回一個(gè)布爾數(shù)據(jù)作為Mask,將需要的數(shù)據(jù)選取出來;實(shí)際上,我們并不需要知道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]
注意點(diǎn)一:應(yīng)用多個(gè)條件時(shí),可以使用 &
, 各個(gè)條件需要放在()
內(nèi);如上例中的:b[(b>5) & (b<8)]
注意點(diǎn)二:布爾索引不一定要對(duì)數(shù)組中的所有元素,也可以針對(duì)某一行或者某一列進(jìn)行篩選;舉例如下:
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)是一個(gè)NumPy術(shù)語,它指的是利用整數(shù)數(shù)組進(jìn)行索引。假設(shè)我們有一個(gè)8×4數(shù)組:
a = np.arange(32).reshape(8,4)
通過花式索引,我們可以進(jìn)行如下操作:
選出指定的行,例如選出第1,3,5,7 行: print(a[[1,3,5,7]])
, 輸出為:
也可以傳入負(fù)數(shù),選出倒數(shù)的行,例如選出最后3行: print(a[[-3,-2,-1]])
, 輸出為:
也可以傳入多個(gè)索引數(shù)組,返回對(duì)應(yīng)值的一維數(shù)組,例如選出 (2,2), (3,3), (5,3) 三個(gè)數(shù): print(a[[2,3,5],[2,3,3]])
, 輸出為:
選出指定的列,例如選出第0,1, 3列:print(a[:,[1,2,3]])
, 輸出為:
選出指定的行與指定的列,例如選出第0,2,3列,第2,5,6 行的一個(gè)3*3數(shù)組; print(a[[2,5,6]][:,[0,2,3]])
, 輸出為:
在上面的基礎(chǔ)上,還可以通過交換輸入的順序,調(diào)整輸出的順序,例如:想要調(diào)換2,3列的順序,同時(shí)調(diào)換 2,6 行的順序;print(a[[6,5,2]][:,[0,3,2]])
以上就是關(guān)于“Numpy的切片索引與高級(jí)索引怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站欄目:Numpy的切片索引與高級(jí)索引怎么使用
分享地址:http://bm7419.com/article6/geehog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、ChatGPT、網(wǎng)站設(shè)計(jì)公司、營銷型網(wǎng)站建設(shè)、電子商務(wù)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)