numpy 基於多維陣列來獲取和修改元素

Mondo 科技 更新 2024-02-19

在多維陣列中,陣列中有多少維表示有多少個軸,對應軸索引的元素通過索引下標獲取,如果下標包含所有軸,則返回變數,否則返回軸較低的陣列。

描述:

在多維陣列中,如果僅對某些軸進行索引,則返回的物件是具有維度下軸的 ndarray。 使用所有軸的索引,返回乙個標量。

具有多個軸的多維陣列,最外層是 0 軸,索引下標從 0 軸開始。

m,n,o] 表示下標,其索引在軸 0 上為 m,在軸 1 上為索引 n,在軸 2 上為索引 o。

m,n,o] 索引下標等同於 m[o] 索引下標。

>>import numpy as np

建立乙個二維陣列。

>ar2d=np.array([[10,11,12],[13,14,15]])

>ar2d

array([[10, 11, 12],[13, 14, 15]])

二維陣列,單個索引得到一維低一維陣列。

具有 2 個軸的二維陣列,軸 0 (axis0) 是行,軸 1 (axis1) 是列。

單個索引獲取軸 0 上的資料,其索引對應軸 0 上的索引。

[n] 獲取乙個索引為 n 的一維陣列,該陣列的索引位於 axis0 軸上。

>ar2d[0]

array([10, 11, 12])

>ar2d[1]

array([13, 14, 15])

具有雙精度索引的二維陣列,用於獲取軸 0 和軸 1 指定索引的單個元素。

[m][n] 獲取對應於軸 0 的索引 m 和軸 1 的索引 n 的元素。

>ar2d[0][1]

[m,n] 與 [m][n] 相同。

獲取索引 m 位於軸 0 且索引 n 位於軸 1 的元素。

>ar2d[0,1]

建立三維陣列。

>ar3d=np.array([[11,12,13],[14,15,16]],21,22,23],[24,25,26]]]

三維陣列有三個軸,axis0、axis1、axis2

>ar3d

array([[11, 12, 13],[14, 15, 16]],21, 22, 23],[24, 25, 26]]]

[n] 獲取在 0 軸上索引為 n 的二維陣列。

>ar3d[0]

array([[11, 12, 13],[14, 15, 16]])

[m][n] 獲取乙個一維陣列,索引 m 在軸 0 上,索引 n 在軸 1 上。

>ar3d[0][1]

array([14, 15, 16])

[m][n][o] 獲取對應於軸 0 上的索引 m、軸 1 上的 n 和軸 2 上的索引 o 的元素。

>ar3d[0][1][2]

[m,n] 與 [m][n] 相同。

>ar3d[0,1]

array([14, 15, 16])

[m,n,o] 與 [m][n][o] 相同。

>ar3d[0,1,2]

描述:具有多個軸的多維陣列,最外層是 0 軸,索引下標從 0 軸開始。

m,n,o] 表示下標,其索引在軸 0 上為 m,在軸 1 上為索引 n,在軸 2 上為索引 o。

非標量元素的多維陣列可以通過標量和陣列進行分配。

按標量賦值時,指定索引的元素被賦值為相同的標量值。

從陣列中分配值時,指定索引的元素需要具有與分配的陣列相同的形狀。

>>import numpy as np

建立乙個二維陣列。

>ar2d=np.array([[10,11,12],[13,14,15]])

>ar2d

array([[10, 11, 12],[13, 14, 15]])

>vals_2d1=ar2d[1].copy()

>vals_2d1

array([13, 14, 15])

值通過標量分配。

>ar2d[1]=22 在軸 0 上索引為 1 的一維陣列被分配值 22

>ar2d

array([[10, 11, 12],[22, 22, 22]])

通過陣列分配值。

>ar2d[1]=vals 2d1 軸 0 上索引為 1 的陣列被分配乙個 vals 2d1 陣列。

>ar2d

array([[10, 11, 12],[13, 14, 15]])

建立三維陣列。

>ar3d=np.array([[11,12,13],[14,15,16]],21,22,23],[24,25,26]]]

三維陣列有三個軸,axis0、axis1、axis2

>ar3d

array([[11, 12, 13],[14, 15, 16]],21, 22, 23],[24, 25, 26]]]

>vals_3d10=ar3d[1,0].copy()

>vals_3d10

array([21, 22, 23])

值通過標量分配。

在 0 軸上索引為 1 且在 1 軸上索引為 0 的陣列分配值為 22

>ar3d[1,0]=68

>ar3d

array([[11, 12, 13],[14, 15, 16]],68, 68, 68],[24, 25, 26]]]

通過陣列分配值。

在 0 軸上索引為 1 且在 1 軸上索引為 0 的陣列被指定為 vals 3d10 陣列。

>ar3d[1,0]=vals_3d10

>ar3d

array([[11, 12, 13],[14, 15, 16]],21, 22, 23],[24, 25, 26]]]

相關問題答案

    Numpy 基於 ndarray 記憶體布局屬性

    ndarray 屬性反映了陣列本身的資訊,可以通過訪問該屬性來訪問或設定陣列的內部資訊。ndarray 屬性包括記憶體布局屬性 資料型別屬性和其他屬性。ndarray 的記憶體布局屬性如下 描述 ndarray.flags 獲取 ndarray 物件的記憶體資訊,包括以下屬性 例 import nu...

    Numpy 基於 ndarray 的其他屬性

    除了記憶體布局屬性外,用於 python 資料分析的 numpy 庫的 ndarray 物件還具有資料型別屬性和 t 和 real 等其他屬性。ndarray 的資料型別屬性如下 描述 ndarray.dtype 返回 Array 元素的資料型別。例 import numpy as np arr n...

    NumPy 基於一維陣列來獲取和修改元素

    有很多方法可以獲取資料子集或 numpy 陣列的單個元素,如果它是一維陣列,則類似於 Python 列表。描述 陣列元素通過索引獲取,一維陣列索引下標從 開始,m 表示索引為 m 的元素。m n 切片,標頭不包絡尾部,獲取具有從 m 到 n 的一維陣列索引的元素,包括 m 不包括 n,並返回乙個陣列...

    NumPy

    numpy 提供了許多數學函式,用於對陣列中的元素執行各種數學計算。以下是一些常用的數學函式 數值計算功能 np.add 對陣列中的元素執行加法運算。np.subtract 從陣列中減去元素。np.multiply 陣列中元素的乘法。np.divide 劃分陣列中的元素。np.power 對陣列中的...

    NumPy 的高階索引

    numpy 提供了一些高階索引技術,可以通過整數陣列或布林陣列進行索引。這些高階索引技術可用於獲取陣列中的特定元素 行或列。整數陣列索引 您可以使用整數陣列來獲取陣列中的特定元素。這個整數陣列表示要提取的元素的索引位置。例 import numpy as np arr np.array ,,,, i...