如何将numpy数组转换为元素为元组的numpy数组
Numpy数组转换操作方案
你可以根据使用场景选择以下两种实现方式:
方案1:Numpy原生向量化实现(大数据量优先)
直接通过向量化运算构造第二列,再拼接为目标结构,性能远高于循环类操作:
import numpy as np # 原始数组 origin_arr = np.array([1, 2, 3]) # 拼接原始数组和其平方数组,得到(3,2)形状的数组 result = np.column_stack((origin_arr, origin_arr ** 2)) # 如果你需要数组元素严格为元组类型,可追加以下代码转换为结构化数组 result_with_tuple = result.view(dtype=[('col1', int), ('col2', int)]).reshape(-1)
输出验证:
- 普通拼接结果
result打印内容:
array([[1, 1], [2, 4], [3, 9]])
- 结构化数组
result_with_tuple打印内容:
array([(1, 1), (2, 4), (3, 9)], dtype=[('col1', '<i4'), ('col2', '<i4')])
方案2:列表推导式实现(小数据量灵活适配)
如果后续需要修改第二列的计算逻辑,小数据量下用列表推导式写起来更简单:
import numpy as np origin_arr = np.array([1, 2, 3]) result = np.array([(x, x**2) for x in origin_arr])
内容的提问来源于stack exchange,提问作者Galen BlueTalon
相关产品推荐
相关产品推荐

