Python Numpy學習之索引及切片的使用方法

2022-09-21 01:57:10 字數 2429 閱讀 5367

目錄

陣列中的元素可以通過索引以及切片的手段進行訪問或者修改,和列表的切片操作一樣。

下面直接使用**進行實現,具體操作方式以及意義以**注釋為準:

(1)通過下標以及內建函式進行索引切片

"""author:xiaoma

date:2021/12/30

"""import numpy as np

a = np.arange(10)#建立乙個從0-9的一維陣列

print(a)

i = slice(2, 7, 2)#從2開始到7結束,每隔1個元素進行索引,即start為1,stop為7,step為2

print(a[i])

得到的輸出如下:

(2)使用冒號分隔引數進行切片索引

"""author:xiaoma

date:2021/12/30

"""import numpy as np

a = np.arange(10)#建立乙個從0-9的一維陣列

print(a[2:7:2])#將起始、結束、步長使用冒號進行分割,表示索引切片

得到的輸出如下:

(3)對部分元素進行索引並切片

a. 切取中間的一段

"""author:xiaoma

date:2021/12/30

"""impor程式設計客棧t numpy as np

a = np.arange(10)#建立乙個從0-9的一維陣列

print(a[2:5])#從2-5進行切片

得到輸出如下:

b. 切取程式設計客棧某乙個元素後的全部

"""author:xiaoma

date:2021/12/30

"""import numpy as np

a = np.arange(10)#建立乙個從0-9的一維陣列

print(a[3:])#從3開始進行列印,直到列印完整個陣列

得到輸出如下:

(4)對多維陣列進行索引切片

"""author:xiaoma

date:2021/12/30

"""import numpy as np

b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

print('從陣列索引a[2:]處開始切片:')

print(b[2:])

print('陣列第二列進行切片:')

print(b[..., 2])

print('陣列第二行進行切片:')

print(b[2, ...])

print('從第二列開始切片:')

print(b[..., 1:])

得到輸出如下:

(1)整數陣列索引

"""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('對陣列(1,1)和(0,0)處的元素進行索引切片:')

print(c)

得到輸出如下:

(2)布林索引

通過乙個布林陣列來索引目標陣列,布林陣列可以通過布林運算得到符合條件的陣列元素。

如下我們可以提取乙個陣列中不小於5的數:

"""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('陣列中不小於5的數如下:')

print(a[a >= 5])

得到輸出如下:

(3)花式索引

花式索引指的是利用整數陣列進行索引。花式索引根據索引陣列的值作為目標陣列的某個軸的下標來取值。對於使用一維整型陣列作為索引,如果目標是一維陣列,那麼索引的結果就是對應下標的行,如果目標是二維陣列,那麼就是對應位置的元素。花式索引跟切片不一樣,它總是將資料複製到新陣列中。

"""author:xiaoma

date:2021/12/30

"""import numpy as np

x = 程式設計客棧np.arange(32).reshape((8, 4))

print('生成的陣列為:')

print(x)

print('傳入順序索引陣列:')

print(x[[4, 2, 1, 7]])

print('傳入倒序索引陣列:')

print(x[[-4, -2, -1, -1]])

print('傳入多個索引陣列:')

print(x[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])])#輸出的是兩個向量不同維度組合的值

得到輸出如下:

Python NumPy學習筆記之矩陣

建立numpy矩陣 a np.mat 1 2 3 4 5 6 7 8 9 b np.matrix 1,2,3 4,5,6 7,8,9 print a,n b 小矩陣合成大矩陣 a np.diag 1,2,3 b np.eye 3 c np.bmat a b 橫向合成矩陣 d np.bmat a b ...

python numpy庫學習之陣列訪問

import numpy as np 訪問陣列的元素,可以分為訪問某個具體位置,某一行 某一列 連續的幾個位置 不連續的幾個位置 滿足特定條件的位置 比如 陣列中所有的值大於a的元素 所有是虛數的元素 不是無窮大nan的元素等 a0 np.array 1 4,2 5,3 print a0 b a0 ...

Python Numpy之linspace用法說明

linspace生成有序列表,重點在資料範圍與資料個數上 linspace 0,1,11 即從0到1閉區間,劃分為11個資料點 import numpy as np a np.linspace 0,1 a array 0.0.11111111,0.www.cppcns.com22222222,0.3...