Skip to main content
 首页 » 编程设计

python之查找嵌套数组的形状

2025年05月04日19lyhabc

我有一个像这样的 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 维数组,此属性仍然为真。