如何在保留数据类型的同时将 NumPy 数组与不同数据类型组合?

Susan Sarandon
发布: 2024-10-21 17:59:18
原创
526 人浏览过

How to Combine NumPy Arrays with Different Datatypes While Preserving Data Types?

在 NumPy 中组合具有多种数据类型的数组

将包含不同数据类型的数组连接成一个数组,每列中都有相应的数据类型一个挑战。不幸的是,使用 np.concatenate() 的常见方法会将整个数组转换为字符串数据类型,从而导致内存效率低下。

要克服此限制,一个可行的解决方案是使用记录数组或结构化数组。

记录数组

记录数组允许通过属性访问各个数据字段。通过指定每个字段的数据类型,可以将多个数据类型组合在一个数组中:

<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)</code>
登录后复制

输出:

rec.array([('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])
登录后复制

结构化数组

结构化数组类似,提供定义每列数据类型的能力。但是,它们不支持像记录数组那样的属性访问:

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

print(arr)</code>
登录后复制

输出:

array([('a', 0), ('b', 1)], 
      dtype=[('keys', '|S1'), ('data', '<i8')])
登录后复制

在记录和结构化数组之间进行选择

记录数组和结构化数组之间的选择取决于各个用例。记录数组为属性访问提供了便利,而结构化数组可能更适合更复杂的数据结构。这两种方法都提供了一种在 NumPy 中组合具有不同数据类型的数组的便捷方法,从而提供了数据操作的灵活性和效率。

以上是如何在保留数据类型的同时将 NumPy 数组与不同数据类型组合?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!