小编典典

将Python序列转换为NumPy数组,填充缺失值

python

变长 列表的Python序列隐式转换为NumPy数组会导致该数组属于 object 类型。

v = [[1], [1, 2]]
np.array(v)
>>> array([[1], [1, 2]], dtype=object)

尝试强制使用其他类型将导致异常:

np.array(v, dtype=np.int32)
ValueError: setting an array element with a sequence.

通过使用给定的占位符填充“缺失”值来获取类型为int32的密集NumPy数组的最有效方法是什么?

从我的示例序列中v,如果占位符为0,我想得到类似的结果

array([[1, 0], [1, 2]], dtype=int32)

阅读 212

收藏
2020-12-20

共1个答案

小编典典

您可以使用itertools.zip_longest

import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T
Out: 
array([[1, 0],
       [1, 2]])

注意:对于Python
2,它是itertools.izip_longest

2020-12-20