NumPy數組(二)- 數組的索引和切片

1. 基礎知識

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的元素

代碼運行截圖 切片.pngcode

2.高級索引

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個(針對一維數組而言)

代碼運行截圖: image.pngblog

相關文章
相關標籤/搜索