为什么没有打印空的numpy数组

时间:2016-03-21 14:00:56

标签: python arrays numpy

如果我初始化一个python列表

x = [[],[],[]]
print(x)
然后它返回

[[], [], []]

但如果我对numpy数组做同样的事情

x = np.array([np.array([]),np.array([]),np.array([])])
print(x)

然后它只返回

[]

如何让它返回一个嵌套的空列表,就像它对普通的python列表一样?

3 个答案:

答案 0 :(得分:8)

实际上确实返回一个嵌套的空列表。例如,尝试

x = np.array([np.array([]),np.array([]),np.array([])])
>>> array([], shape=(3, 0), dtype=float64)

>>> print x.shape
(3, 0)

不要让print x的输出欺骗你。这些类型的输出仅反映__str____repr__的实现者的(美学)选择。要真正查看确切的维度,您需要使用.shape等内容。

答案 1 :(得分:3)

要从numpy数组返回嵌套的空列表,您可以执行以下操作:

x.tolist()
[[], [], []]

但是,即使只打印[],形状也是正确的:

x.shape
(3, 0)

您可以访问列表中的任何元素:

x[0]
array([], dtype=float64)

答案 2 :(得分:2)

最简单的解决方案是将其转换为tolist

的列表
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
[]

print(x.tolist())
[[], [], []]