如何直接构造值为(3, True)的np.record对象(无需先创建recarray)
直接构造numpy.record对象的方案
要直接创建值为(3, True)、支持.访问属性的np.record对象,无需先构建recarray,按以下步骤操作:
- 定义结构化数据类型
先明确record的字段名和对应数据类型,这里我们需要a(整数)和b(布尔值)两个字段:
import numpy as np record_dtype = np.dtype([('a', int), ('b', bool)])
- 直接实例化np.record
用np.record的构造方法,传入值元组和定义好的dtype,就能生成单个record对象:
my_record = np.record((3, True), dtype=record_dtype)
- 验证访问效果
现在可以直接通过属性名访问对应值:
print(my_record.a) # 输出: 3 print(my_record.b) # 输出: True print(type(my_record)) # 输出: <class 'numpy.record'>
额外技巧
- 若需要指定更具体的数值类型(比如32位整数),调整dtype定义即可:
np.dtype([('a', 'int32'), ('b', 'bool')]) - 另一种等价方式是先构造单个结构化数组元素,再转为record:
my_record = np.array((3, True), dtype=record_dtype).view(np.record)
内容的提问来源于stack exchange,提问作者doraemon
相关产品推荐
相关产品推荐

