如果我初始化一个python列表
x = [[],[],[]]
print(x)
然后它返回
[[], [], []]
但如果我对numpy数组做同样的事情
x = np.array([np.array([]),np.array([]),np.array([])])
print(x)
然后它只返回
[]
如何让它返回一个嵌套的空列表,就像它对普通的python列表一样?
答案 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())
[[], [], []]