【发布时间】:2020-10-21 00:07:08
【问题描述】:
我尝试创建将 python 列表转换为 numpy 数组,但得到的输出非常不直观。当然我做错了什么,但出于好奇,我想知道为什么我会得到这样的输出。 这是我的代码:
import numpy as np
# Exercise 2
a = [1, 5, 3, 6, 2]
b = np.ndarray(a)
print(b, b.dtype)
输出是
[[[[[0.00000000e+000 6.93284651e-310]
[6.93284792e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]]
[[6.93284744e-310 2.20882835e-314]
[6.93284743e-310 6.93284743e-310]
[6.93284743e-310 6.93284650e-310]
[6.93284744e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]
[6.93284744e-310 6.93284744e-310]]
... (12 more blocks similar to ones above)
[[6.93284871e-310 6.93284871e-310]
[6.93284745e-310 6.93284871e-310]
[6.93284651e-310 6.93284871e-310]
[6.93284745e-310 6.93284871e-310]
[6.93284871e-310 6.93284745e-310]
[6.93284727e-310 6.93284871e-310]]]]] float64
【问题讨论】:
-
特伦顿,不完全是,但感谢您的参考。我发现了我的错误,只是想了解为什么我得到这个特定的输出。从答案中我得到了为什么输出是这种形状,但现在我也对这些值感到好奇。
-
可能是浮点精度。它们都等价于 0
-
对于
ndarray,您没有指定buffer,只是指定了shape。所以这些值是“未初始化的”,甚至不是 0。如果你想要一个具有给定形状的 0 数组,请使用np.zeros(shape)。
标签: python list numpy multidimensional-array