numpy array.shape行为

时间:2019-09-29 16:09:59

标签: numpy numpy-ndarray

对于以下内容:

d = np.array([[0,1,4,3,2],[10,18,4,7,5]])
print(d.shape)

输出为:

  

(2,5)

这是预期的。

但是,为此(单个行中元素数量的差异):

d = np.array([[0,1,4,3,2],[10,18,4,7]])
print(d.shape)

输出为:

  

(2,)

如何解释这种行为?

1 个答案:

答案 0 :(得分:1)

简短答案:它将其解析为两个对象:两个列表的数组。

Numpy用于处理“矩形”数据。如果您将其传递为非矩形数据,则np.array(..)函数会考虑将其作为 objects 列表。

实际上,请在此处查看数组的dtype

>>> d
array([list([0, 1, 4, 3, 2]), list([10, 18, 4, 7])], dtype=object)

它是一维array,其中包含两个项目两个列表。这些列表只是对象。