這篇“numpy數(shù)組不同索引方式有什么區(qū)別”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“numpy數(shù)組不同索引方式有什么區(qū)別”文章吧。
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),安丘網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:安丘等地區(qū)。安丘做網(wǎng)站價(jià)格咨詢:18980820575
numpy數(shù)組一般有三種索引方式:
基礎(chǔ)索引與切片
布爾索引
神奇索引
三種方法都可截取原數(shù)組中的部分?jǐn)?shù)據(jù),但是使用的時(shí)候在本質(zhì)上卻有區(qū)別,尤其是在處理大量數(shù)據(jù)時(shí),不弄清索引本質(zhì),會(huì)導(dǎo)致最后預(yù)測(cè)結(jié)果不準(zhǔn)確。
基礎(chǔ)索引與切片
先上代碼:
import numpy as np
arr = np.arange(25).reshape(5,5)
arr
arr1 = arr[:3]
arr1
arr1[1] = -1
arr
大家可以從上面的結(jié)果中發(fā)現(xiàn),將arr前3行賦值給arr1,然后將arr1的第2行的數(shù)值改為-1,最后arr也發(fā)生了改變。原因是在基礎(chǔ)索引中,返回的只是原數(shù)組的視圖,而不是復(fù)制原數(shù)組,任何對(duì)于視圖的修改,都會(huì)影響原數(shù)組。
解決方法,利用ndarray自帶方法copy(),復(fù)制原數(shù)組。
arr = np.arange(25).reshape(5,5)
arr
arr1 = arr.copy()
arr1[1]=-1
arr
布爾索引
先上代碼:
bool_ = [True,False,True,False,False]
arr1 = arr[bool_]
arr1
arr1[1]=-1
arr
可以發(fā)現(xiàn),布爾索引并未出現(xiàn)類似問題,因?yàn)槔貌紶栔邓饕龝r(shí),總是生成數(shù)據(jù)的拷貝,所以改變選擇數(shù)據(jù),對(duì)原數(shù)組沒有影響。
神奇索引
index = [3,4,1,2]
arr1 = arr[index]
arr1
arr1[1]=-1
arr
神奇索引和布爾索引一樣,選擇數(shù)據(jù)的改變也不會(huì)影響原數(shù)組。
以上就是關(guān)于“numpy數(shù)組不同索引方式有什么區(qū)別”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。