Python Numpy學(xué)習(xí)之索引及切片的使用方法
1. 索引及切片
數(shù)組中的元素可以通過索引以及切片的手段進(jìn)行訪問或者修改,和列表的切片操作一樣。
下面直接使用代碼進(jìn)行實(shí)現(xiàn),具體操作方式以及意義以代碼注釋為準(zhǔn):
(1)通過下標(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開始到7結(jié)束,每隔1個(gè)元素進(jìn)行索引,即start為1,stop為7,step為2 print(a[i])
得到的輸出如下:
(2)使用冒號分隔參數(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é)束、步長使用冒號進(jìn)行分割,表示索引切片
得到的輸出如下:
(3)對部分元素進(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)行切片
得到輸出如下:
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開始進(jìn)行打印,直到打印完整個(gè)數(shù)組
得到輸出如下:
(4)對多維數(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:]處開始切片:') print(b[2:]) print('數(shù)組第二列進(jìn)行切片:') print(b[..., 2]) print('數(shù)組第二行進(jìn)行切片:') print(b[2, ...]) print('從第二列開始切片:') print(b[..., 1:])
得到輸出如下:
2. 高級索引
(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('對數(shù)組(1,1)和(0,0)處的元素進(jìn)行索引切片:') print(c)
得到輸出如下:
(2)布爾索引
通過一個(gè)布爾數(shù)組來索引目標(biāo)數(shù)組,布爾數(shù)組可以通過布爾運(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])
得到輸出如下:
(3)花式索引
花式索引指的是利用整數(shù)數(shù)組進(jìn)行索引。花式索引根據(jù)索引數(shù)組的值作為目標(biāo)數(shù)組的某個(gè)軸的下標(biāo)來取值。對于使用一維整型數(shù)組作為索引,如果目標(biāo)是一維數(shù)組,那么索引的結(jié)果就是對應(yīng)下標(biāo)的行,如果目標(biāo)是二維數(shù)組,那么就是對應(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è)向量不同維度組合的值
得到輸出如下:
到此這篇關(guān)于Python Numpy學(xué)習(xí)之索引及切片的使用方法的文章就介紹到這了,更多相關(guān)Python Numpy索引 切片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Rasterio讀取柵格數(shù)據(jù)的實(shí)例講解
今天小編就為大家分享一篇使用Rasterio讀取柵格數(shù)據(jù)的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11基于Python實(shí)現(xiàn)從頭搭建一個(gè)在線聊天室框架
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)從頭搭建一個(gè)在線聊天室框架,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-11-11python cookie反爬處理的實(shí)現(xiàn)
這篇文章主要介紹了python cookie反爬處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11python實(shí)現(xiàn)flappy bird游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)flappy bird游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12一個(gè)可以套路別人的python小程序?qū)嵗a
本文通過一段實(shí)例代碼給大家分享一個(gè)可以套路別人的python小程序,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解
這篇文章主要介紹了python使用正則表達(dá)式去除中文文本多余空格,保留英文之間空格方法詳解,需要的朋友可以參考下2020-02-02Python gevent協(xié)程切換實(shí)現(xiàn)詳解
這篇文章主要介紹了Python gevent協(xié)程切換實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09python條件變量之生產(chǎn)者與消費(fèi)者操作實(shí)例分析
這篇文章主要介紹了python條件變量之生產(chǎn)者與消費(fèi)者操作,結(jié)合具體實(shí)例形式分析了Python條件變量的概念、原理、及線程操作的相關(guān)技巧,需要的朋友可以參考下2017-03-03python狀態(tài)機(jī)transitions庫詳解
在用python做一個(gè)比較復(fù)雜的小項(xiàng)目,需要根據(jù)不同的輸入,控制攝像頭采集執(zhí)行不同的任務(wù).雖然用流程方式實(shí)現(xiàn)了,但閱讀起來費(fèi)勁,還容易出錯(cuò).所以就用了狀態(tài)機(jī),需要的朋友可以參考下2021-06-06利用python微信庫itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
最近發(fā)現(xiàn)了一個(gè)特別好玩的Python 微信庫itchat,可以實(shí)現(xiàn)自動(dòng)回復(fù)等多種功能,下面這篇文章主要給大家介紹了利用python微信庫itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能的相關(guān)資料,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-05-05