首页  >  文章  >  后端开发  >  如何将可变长度 Python 列表转换为带有占位符的密集 NumPy 数组?

如何将可变长度 Python 列表转换为带有占位符的密集 NumPy 数组?

Barbara Streisand
Barbara Streisand原创
2024-11-03 22:03:03455浏览

How to Convert Variable-Length Python Lists to a Dense NumPy Array with Placeholders?

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

将变长 Python 列表直接转换为 NumPy 数组结果在“对象”类型的数组中,这可能是不可取的。或者,尝试使用 np.array(v, dtype=np.int32) 强制指定类型会因数组中存在序列而导致异常。

因此,要创建一个密集的 NumPy 数组特定数据类型(例如 int32),同时使用占位符填充缺失值,您可以利用 itertools.zip_longest

例如,考虑输入序列 v = [[1], [1, 2]],使用占位符为 0 的 itertools.zip_longest ,可以高效地获得密集的 NumPy 数组,如下所示:

<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 代替。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn