我有不同长度的列表列表(例如 [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
)并想将其转换为 numpy
整数数组。我知道 numpy
多维数组中的“子”数组必须具有相同的长度。那么,将上面示例中的此类列表转换为 numpy
这样的数组的最有效方法是什么 [[1, 2, 3, 0], [4, 5, 0, 0], [6, 7, 8, 9]]
,即用零完成?
原文由 Dimansel 发布,翻译遵循 CC BY-SA 4.0 许可协议
在转换为 numpy 数组之前,通过填充较短的子列表对列表进行一些预处理:
>>> lst = [[1, 2, 3], [4, 5], [1, 7, 8, 9]]
>>> pad = len(max(lst, key=len))
>>> np.array([i + [0]*(pad-len(i)) for i in lst])
array([[1, 2, 3, 0],
[4, 5, 0, 0],
[1, 7, 8, 9]])
原文由 Moses Koledoye 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
2 回答968 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
您可以使用 np.zeros 创建一个 numpy 数组,并用您的列表元素填充它们,如下所示。
结果是