首页 >后端开发 >Python教程 >如何在单个 NumPy 数组中存储多种数据类型并保留原始数据类型?

如何在单个 NumPy 数组中存储多种数据类型并保留原始数据类型?

DDD
DDD原创
2024-10-21 17:56:45738浏览

How to Store Multiple Data Types in a Single NumPy Array with Preserved Original Data Types?

在单个 NumPy 数组中存储多种数据类型

您面临着组合两个数组的挑战,一个包含字符串,另一个包含字符串包含整数,放入单个数组中。虽然您当前使用 np.concatenate 的方法会导致整个数组转换为字符串数据类型,但您正在寻求更有效的解决方案。

记录数组:

一个有效的方法是利用记录数组。这允许您创建保留其原始数据类型的“列”。记录数组是使用 numpy.rec.fromarrays 函数构造的,并采用代表每一列的数组及其相应的字段名称。

<code class="python">import numpy as np

a = np.array(['a', 'b', 'c', 'd', 'e'])
b = np.arange(5)

records = np.rec.fromarrays((a, b), names=('keys', 'data'))

print(records)
# rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
#      dtype=[('keys', '|S1'), ('data', '<i8')])</code>

结构化数组:

另一个选项是使用结构化数组,它是用自定义数据类型声明的。虽然它们缺乏记录数组提供的属性访问,但它们提供了更有效的表示。

<code class="python">arr = np.array([('a', 0), ('b', 1)], 
                      dtype=([('keys', '|S1'), ('data', 'i8')]))

print(arr)
# array([('a', 0), ('b', 1)], 
#      dtype=[('keys', '|S1'), ('data', '<i8')])</code>

通过根据您的具体要求使用记录或结构化数组,您可以在单个 NumPy 中有效地存储多种数据类型数组,同时保持其原始数据类型。

以上是如何在单个 NumPy 数组中存储多种数据类型并保留原始数据类型?的详细内容。更多信息请关注PHP中文网其他相关文章!

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