我有一个像这样的 numpy 数组:
import numpy as np
a = np.zeros((30,2))
这给了我一个包含 30 行和 2 列的数组,a.shape 返回 >> (30,2)
但是,如果我检查 a[0].shape >> (2,) 的形状,但我希望看到 (1,2) 有没有一种方法可以创建这个数组 (30,2) 并且仍然将各个元素的形状设为 (1,2)?
请您参考如下方法:
如果您使用 integer array indexing ,第一个轴不会消失:
In [8]: a[[0]].shape
Out[8]: (1, 2)
第一个轴的长度与用于索引第一个轴的列表的长度相同。因为len([0])为1,所以a[[0]]的第一个轴的长度为1。
相比之下,a[0] 是一个基本切片,根据 the rules删除关联的轴。
这两种类型的索引具有一定的一致性:如果我们将标量 0 视为类似长度为 0 的数组,而列表 [0]作为类似长度为 1 的数组,a[index] 返回一个数组,其第一个轴的长度与 index 相同。即使 index 本身是一个 N 维数组,此属性仍然为真。
