查找嵌套数组的形状

时间:2019-02-20 14:27:26

标签: python numpy numpy-ndarray

我有一个像这样的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)?

2 个答案:

答案 0 :(得分:4)

如果使用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维数组,该属性仍为true。

答案 1 :(得分:2)

作为unutbu's answer的替代方法,您也可以使用

a[0, np.newaxis].shape
>>> (1, 2)

explanation与其他参考文献几乎在同一地点。