首页 > 后端开发 > Python教程 > 如何高效地将可变长度 Python 序列转换为密集 NumPy 数组?

如何高效地将可变长度 Python 序列转换为密集 NumPy 数组?

Susan Sarandon
发布: 2024-11-06 02:59:02
原创
1097 人浏览过

How to Efficiently Convert Variable-Length Python Sequences to Dense NumPy Arrays?

高效地将可变长度 Python 序列转换为密集 NumPy 数组

将 Python 序列转换为 NumPy 数组非常简单。但是,在处理可变长度列表时,隐式转换会产生对象类型的数组,这可能不是最佳的。此外,强制执行特定的数据类型可能会导致异常。

此问题的一个有效解决方案是使用 itertools.zip_longest 函数。通过利用 zip_longest,我们可以轻松创建一系列元组,其中使用占位符值填充缺失值。通过转置结果列表,可以获得所需数据类型的密集 NumPy 数组。

例如,考虑序列 v = [[1], [1, 2]].

<code class="python">import itertools
np.array(list(itertools.zip_longest(*v, fillvalue=0))).T
Out:
array([[1, 0],
       [1, 2]])</code>
登录后复制

此处,填充值 0 用于填充较短列表中的缺失值。

为了兼容 Python 2,请改用 itertools.izip_longest。这种方法非常高效,并提供了一种将可变长度 Python 序列转换为密集 NumPy 数组的简单方法,确保类型安全和最佳性能。

以上是如何高效地将可变长度 Python 序列转换为密集 NumPy 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板