在 NumPy 数组转换中填充缺失值
将可变长度列表的 Python 序列转换为 NumPy 数组时,生成的数组通常由于列表的长度不同,因此采用对象数据类型。强制执行特定的数据类型,例如 int32,可能会导致错误。
为了有效获取具有特定数据类型和填充缺失值的密集 NumPy 数组,可以使用 itertools 模块。具体来说,zip_longest 函数可用于使用占位符值填充列表。
例如,给定序列 v:
v = [[1], [1, 2]]
创建一个以零作为密集 int32 数组占位符:
<code class="python">import itertools np.array(list(itertools.zip_longest(*v, fillvalue=0))).T</code>
此代码生成:
array([[1, 0], [1, 2]])
,其中原始序列中的缺失值用零填充。值得注意的是,对于 Python 2,要使用的函数是 itertools.izip_longest。
以上是如何创建具有特定数据类型的密集 NumPy 数组并从可变长度列表序列中填充缺失值?的详细内容。更多信息请关注PHP中文网其他相关文章!