溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python?Numpy索引及切片的使用方法是什么

發(fā)布時(shí)間:2022-01-10 10:52:15 來(lái)源:億速云 閱讀:155 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要介紹“Python Numpy索引及切片的使用方法是什么”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Python Numpy索引及切片的使用方法是什么”文章能幫助大家解決問(wèn)題。

1. 索引及切片

數(shù)組中的元素可以通過(guò)索引以及切片的手段進(jìn)行訪問(wèn)或者修改,和列表的切片操作一樣。

下面直接使用代碼進(jìn)行實(shí)現(xiàn),具體操作方式以及意義以代碼注釋為準(zhǔn):

(1)通過(guò)下標(biāo)以及內(nèi)置函數(shù)進(jìn)行索引切片

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
a = np.arange(10)#創(chuàng)建一個(gè)從0-9的一維數(shù)組
print(a)
i = slice(2, 7, 2)#從2開(kāi)始到7結(jié)束,每隔1個(gè)元素進(jìn)行索引,即start為1,stop為7,step為2
print(a[i])

得到的輸出如下:

Python?Numpy索引及切片的使用方法是什么

(2)使用冒號(hào)分隔參數(shù)進(jìn)行切片索引

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
a = np.arange(10)#創(chuàng)建一個(gè)從0-9的一維數(shù)組
print(a[2:7:2])#將起始、結(jié)束、步長(zhǎng)使用冒號(hào)進(jìn)行分割,表示索引切片

得到的輸出如下:

Python?Numpy索引及切片的使用方法是什么

(3)對(duì)部分元素進(jìn)行索引并切片

a. 切取中間的一段

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
a = np.arange(10)#創(chuàng)建一個(gè)從0-9的一維數(shù)組
print(a[2:5])#從2-5進(jìn)行切片

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

b. 切取某一個(gè)元素后的全部

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
a = np.arange(10)#創(chuàng)建一個(gè)從0-9的一維數(shù)組
print(a[3:])#從3開(kāi)始進(jìn)行打印,直到打印完整個(gè)數(shù)組

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

(4)對(duì)多維數(shù)組進(jìn)行索引切片

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print('從數(shù)組索引a[2:]處開(kāi)始切片:')
print(b[2:])
print('數(shù)組第二列進(jìn)行切片:')
print(b[..., 2])
print('數(shù)組第二行進(jìn)行切片:')
print(b[2, ...])
print('從第二列開(kāi)始切片:')
print(b[..., 1:])

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

2. 高級(jí)索引

(1)整數(shù)數(shù)組索引

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
c = b[[1, 0], [1, 0]]
print('對(duì)數(shù)組(1,1)和(0,0)處的元素進(jìn)行索引切片:')
print(c)

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

(2)布爾索引

通過(guò)一個(gè)布爾數(shù)組來(lái)索引目標(biāo)數(shù)組,布爾數(shù)組可以通過(guò)布爾運(yùn)算得到符合條件的數(shù)組元素。

如下我們可以提取一個(gè)數(shù)組中不小于5的數(shù):

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
a = np.array([[1, 2, 3, 5], [6, 9, 2, 0], [9, 3, 2, 7]])
print('數(shù)組中不小于5的數(shù)如下:')
print(a[a >= 5])

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

(3)花式索引

花式索引指的是利用整數(shù)數(shù)組進(jìn)行索引。花式索引根據(jù)索引數(shù)組的值作為目標(biāo)數(shù)組的某個(gè)軸的下標(biāo)來(lái)取值。對(duì)于使用一維整型數(shù)組作為索引,如果目標(biāo)是一維數(shù)組,那么索引的結(jié)果就是對(duì)應(yīng)下標(biāo)的行,如果目標(biāo)是二維數(shù)組,那么就是對(duì)應(yīng)位置的元素?;ㄊ剿饕衅灰粯樱偸菍?shù)據(jù)復(fù)制到新數(shù)組中。

"""
Author:XiaoMa
date:2021/12/30
"""
import numpy as np
 
x = np.arange(32).reshape((8, 4))
print('生成的數(shù)組為:')
print(x)
print('傳入順序索引數(shù)組:')
print(x[[4, 2, 1, 7]])
print('傳入倒序索引數(shù)組:')
print(x[[-4, -2, -1, -1]])
print('傳入多個(gè)索引數(shù)組:')
print(x[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])])#輸出的是兩個(gè)向量不同維度組合的值

得到輸出如下:

Python?Numpy索引及切片的使用方法是什么

關(guān)于“Python Numpy索引及切片的使用方法是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI