溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)

發(fā)布時(shí)間:2023-03-22 11:23:30 來源:億速云 閱讀:97 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

這是一個(gè)三維數(shù)組,關(guān)于如何判斷所定義的是幾維數(shù)組,請(qǐng)觀察數(shù)組的開頭和結(jié)尾的中括號(hào)數(shù)目

import numpy as np
#這是一個(gè) 2x2x3 的三維數(shù)組
arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]]])
print(arr)

在多維數(shù)組中,如果你忽略后續(xù)的索引參數(shù),他打印出的結(jié)果將會(huì)降低一個(gè)維度

我將會(huì)打印它的完整數(shù)組,以便大家用以比對(duì)

Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)

將定義的三維數(shù)組降低了一個(gè)維度,成為了二維數(shù)組

#打印以下結(jié)果
arrs = arr[1,2]
#index 2 is out of bounds for axis 1 with size 2    索引2超出大小為2的軸1的范圍

我們可以分析一下出現(xiàn)這種問題的原因:

1,首先我這是索引,arr[1,2] 的含義是,取編號(hào)是1的行,編號(hào)是2的行,我們可以思考一下,三維數(shù)組降低一個(gè)維度應(yīng)是二維數(shù)組,二維數(shù)組降低一個(gè)維度應(yīng)是一維數(shù)組,arr[1,2]中的“1”呢,應(yīng)是三維數(shù)組中的編號(hào)為“1”的行,三維數(shù)組中編號(hào)為“1”的行,應(yīng)是一個(gè)二維數(shù)組,arr[1,2]中的“2”呢,應(yīng)該在二維數(shù)組的基礎(chǔ)上,就要降低一個(gè)維度,為一維數(shù)組,在下圖中一維數(shù)組只有兩行,編號(hào)分別為“0”和“1”哪里來的編號(hào)為“2”呢?是不是超出索引范圍了。

Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)

同樣對(duì)三維數(shù)組來說,我們也可以使用類似視圖的操作

arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]]])
print(arr)
#打印以下結(jié)果
new_long = arr[0]
new_long = 22
print(arr)

Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)

我們經(jīng)過將arr 三維數(shù)組中的編號(hào)為“0”的行arr[0]拿出來,賦值給了變量名new_long ,然后將new_long進(jìn)行重新賦值為 “22”,new_long的值其實(shí)就是 arr[0]的值,我們將三維數(shù)組arr的打印出來,顯然數(shù)組的元素值并沒有發(fā)生任何變化。有的同學(xué)會(huì)問這有什么意義呢?

我們可以對(duì)數(shù)組切片做同樣的操作來看看變化

import numpy as np
#這是一個(gè) 2x2x3 的三維數(shù)組
arr =np.array( [[[0, 1 ,2] ,[3, 4, 5]] ,[[6 ,7, 8],[9,10,11]],[[12,13,14],[15,16,17]]])
print(arr)
#打印以下結(jié)果
#我把a(bǔ)rr三維數(shù)組中編號(hào)為“1”,和編號(hào)為“2”的數(shù)組拿了出來賦值給一個(gè)新定義的變量名new_long
new_long = arr[0:2]
# print(new_long)
#我對(duì)new_long中的數(shù)據(jù)進(jìn)行了篡改
new_long[0] = 22
# arr[0] = new_long
#但是當(dāng)我打印最初定義的三維數(shù)組 arr時(shí),發(fā)現(xiàn)它的數(shù)據(jù)被篡改
print(arr)

Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)

你看發(fā)生了變化,我將三維數(shù)組中前兩行拿了出來,是兩個(gè)二維數(shù)組,然后我對(duì)第一個(gè)二維數(shù)組進(jìn)行篡改當(dāng)我再次打印最初定義的三維數(shù)組時(shí)發(fā)現(xiàn)它的數(shù)據(jù)發(fā)生了變化。最初定義的數(shù)組也被篡改了

說明了什么在numpy模塊中定義的數(shù)組無論是幾維,都遵循一個(gè)定義數(shù)組的切片是原數(shù)組的視圖,任何對(duì)于視圖的修改都會(huì)反映到原數(shù)組上。

以上就是“Numpy三維數(shù)組索引與切片如何實(shí)現(xiàn)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI