查找嵌套数组的形状
Find shape of nested array
我有一个像这样的 numpy 数组:
import numpy as np
a = np.zeros((30,2))
这给了我一个包含 30 行和 2 列的数组 a.shape returns >> (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 的数组-like,那么 a[index]
返回一个数组,其第一个轴的长度与 index
相同。即使 index
本身是一个 N
维数组,这个 属性 仍然成立。
作为 的替代方法,您也可以使用
a[0, np.newaxis].shape
>>> (1, 2)
一个explanation几乎可以在另一个参考文献的同一地点找到。
我有一个像这样的 numpy 数组:
import numpy as np
a = np.zeros((30,2))
这给了我一个包含 30 行和 2 列的数组 a.shape returns >> (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 的数组-like,那么 a[index]
返回一个数组,其第一个轴的长度与 index
相同。即使 index
本身是一个 N
维数组,这个 属性 仍然成立。
作为
a[0, np.newaxis].shape
>>> (1, 2)
一个explanation几乎可以在另一个参考文献的同一地点找到。