索引和切片是NumPy中最重要最常用的操作。熟練使用NumPy切片操作是數(shù)據(jù)處理和機器學習的前提,所以一定要掌握好。
文檔:https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html
索引
ndarrays可以使用標準Python x[obj]語法對其進行索引 ,其中x是數(shù)組,obj是選擇方式。有三種可用的索引:字段訪問,基本切片,高級索引。究竟是哪一個取決于obj。
注意
在Python中,x[(exp1, exp2, ..., expN)]相當于 x[exp1, exp2, ..., expN]; 后者只是前者的語法糖。
基本切片和索引
基本切片將 Python 的切片基本概念擴展到 N 維。當obj是一個slice對象(由括號內(nèi)的start:stop:step符號構(gòu)造)、整數(shù)或切片對象和整數(shù)的元組時,會發(fā)生基本切片。也包括省略號(三個點)和newaxis對象。
從版本1.15.0開始不推薦使用:為了保持向后兼容Numeric中的常見用法,如果選擇對象是包含 slice 對象、省略號,或 newaxis 對象的任何非 nararray 和非元組序列(例如 list),則也會啟動基本切片,但不適用于整數(shù)數(shù)組或其他嵌入序列。
使用 N 個整數(shù)進行索引的最簡單情況返回表示相應項的數(shù)組標量。正如在 Python 中,所有下標是從零開始:對我個索引你,取值范圍為
0≤ni
其中d_i是 我的陣列的形狀的個元素。負指數(shù)被解釋為從數(shù)組的末尾開始計數(shù)(即,如果 n_i <0,則意味著n_i + d_i)。
基本切片生成的所有數(shù)組始終 是原始數(shù)組的視圖。
序列切片的標準規(guī)則適用于基于每維的基本切片(包括使用步驟索引)。要記住的一些有用的概念包括:
基本切片語法是i:j:k其中我是起始索引, j是停止索引,并且ķ是步驟
k≠0
這將選擇米元件(在對應的尺寸)與索引值我,i,i+k,...,1 +(m - 1)k, 其中
m=q+(r neq0)
和 q 和 r 是通過j-i 除 k 所獲得的商和余數(shù):
j−i=qk+r
,因此
i+(m−1)k
例
>>> >>> x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> x[1:7:2] array([1, 3, 5])
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。