在多维数组中,数组中有多少维表示有多少个轴,对应轴索引的元素通过索引下标获取,如果下标包含所有轴,则返回变量,否则返回轴较低的数组。
描述:
在多维数组中,如果仅对某些轴进行索引,则返回的对象是具有维度下轴的 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]]]