Numpy(二) 陣列的索引和切片

2021-09-13 18:48:08 字數 1750 閱讀 5844

ndarray物件的內容可以通過索引或切片來訪問和修改,與 python 中 list 的切片操作一樣。ndarray 陣列可以基於 0 - n 的下標進行索引,切片物件可以通過內建的 slice 函式,並設定 start, stop 及 step 引數進行,從原陣列中切割出乙個新陣列。

ndarray [start:stop:step]

start:表示陣列切片的起始下標

stop:表示陣列切片的結束下標

step:表示陣列切片的步長

注意:冒號 : 的解釋:如果只放置乙個引數,如 [2],將返回與該索引相對應的單個元素。如果為 [2:],表示從該索引開始以後的所有項都將被提取。如果使用了兩個引數,如 [2:7],那麼則提取兩個索引(不包括停止索引)之間的項

import numpy as np

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

print('data1的前四項為:',data1[0:4]) #返回下標為0到下標為4的前一項,索引不包括停止索引項

print('逆序輸出陣列元素:',data1[::-1]) #逆向輸出陣列data1中的元素

print('以步長為2輸出0到0的元素:',data1[0:8:2]) #返回從下標為0到下標為8的前一項,且步長為2

print('輸出data1中第一項之後的元素:',data1[1:]) #返回下標為1後的所有元素,包括下標為1的元素

**執行截圖

numpy 比一般的 python 序列提供更多的索引方式。除了之前看到的用整數和切片的索引外,陣列可以由整數陣列索引、布林索引及花式索引。

import numpy as np

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

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

data3 = data2[[0,1,0],[0,1,2]] #返回data2中(0,0),(1,1),(0,2)的元素

print("data2中座標為(0,0),(1,1),(0,2)的元素分別為:",data3)

data4 = data2[data2>2] #布林索引,返回data2中元素值大於2的元素

print('data2中元素大於2的元素是:',data4)

data5 = np.arange((24),dtype=int).reshape(4,6)

print('修改形狀後的data5為:\n',data5)

data6 = data5[[1,2]] #利用整數陣列進行索引,返回data5中的第1,2行(針對二維陣列而言)

print("二維陣列中data6中第1行,第2行分別為:\n",data6)

print("一維陣列中data1中第1個,第2個元素為:",data1[[0,1]]) #利用整數陣列進行索引,返回data1中的第0,1個(針對一維陣列而言)

**執行截圖:

numpy 索引和切片

一 取行 1 單行 陣列 index,取第index 1行 例子import numpy as np arr1 np.arange 0,24 reshape 4,6 取第2行資料 row1 arr1 1,print row1 2 連續的多行 陣列 start end 顧頭不顧尾,也可以使用步長,不過...

NumPy 切片和索引

import numpy asnp a np.arange 10,20,1 b slice 1,5,2 d a 1 5 2 e a 2 print a print a b print d print e 結果 1011 1213 1415 1617 1819 1113 1113 1213 1415 ...

Numpy陣列索引與切片 高階索引

有一些numpy中索引結果時候不太理解的地方,以後可以多多熟悉,熟悉後加以運用。import numpy as np a np.array 1,2,3 3,4,5 4,5,6 print a 1 第2列元素 print a 1,第2行元素 print a 1 第2列及剩下的所有元素整數陣列的索引 以...