numpy 基于多维数组来获取和修改元素

小夏 科技 更新 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 numpy...

    Numpy 基于 ndarray 的其他属性

    除了内存布局属性外,用于 python 数据分析的 numpy 库的 ndarray 对象还具有数据类型属性和 t 和 real 等其他属性。ndarray 的数据类型属性如下 描述 ndarray.dtype 返回 Array 元素的数据类型。例 import numpy as np arr np...

    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...