将 NumPy 数组转换为 Python 列表

新手上路,请多包涵

如何将 NumPy 数组转换为 Python 列表?

原文由 Alex Brooks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 639
2 个回答

使用 tolist()

 >>> import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]

请注意,这会将值从它们可能具有的任何 numpy 类型(例如 np.int32 或 np.float32)转换为“最近兼容的 Python 类型”(在列表中)。如果你想保留 numpy 数据类型,你可以在你的数组上调用 list() ,你最终会得到一个 numpy scalars 列表。 (感谢 Mr_and_Mrs_D 在评论中指出这一点。)

原文由 Peter Hansen 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果 numpy 数组形状是 2D,则 numpy .tolist 方法会生成嵌套列表。

如果需要平面列表,则可以使用以下方法。

 import numpy as np
from itertools import chain

a = [1,2,3,4,5,6,7,8,9]
print type(a), len(a), a
npa = np.asarray(a)
print type(npa), npa.shape, "\n", npa
npa = npa.reshape((3, 3))
print type(npa), npa.shape, "\n", npa
a = list(chain.from_iterable(npa))
print type(a), len(a), a`

原文由 CodingMatters 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题