在多維陣列中,陣列中有多少維表示有多少個軸,對應軸索引的元素通過索引下標獲取,如果下標包含所有軸,則返回變數,否則返回軸較低的陣列。
描述:
在多維陣列中,如果僅對某些軸進行索引,則返回的物件是具有維度下軸的 ndarray。 使用所有軸的索引,返回乙個標量。
具有多個軸的多維陣列,最外層是 0 軸,索引下標從 0 軸開始。
m,n,o] 表示下標,其索引在軸 0 上為 m,在軸 1 上為索引 n,在軸 2 上為索引 o。
m,n,o] 索引下標等同於 m[o] 索引下標。
例
>>import numpy as np描述:具有多個軸的多維陣列,最外層是 0 軸,索引下標從 0 軸開始。建立乙個二維陣列。
>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]
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]]]