在单个 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中文网其他相关文章!