Numpy自定义dtype生成元组类型数组相关问题咨询
问题解答
代码正确性判断
你提供的代码np.empty (1000, dtype = [('a',int), ('b','S4')])本身不存在语法错误,可以正常生成自定义dtype的Numpy数组。唯一可优化的点是np.empty和后续括号之间的多余空格不符合PEP8编码规范,调整为np.empty(1000, dtype = [('a',int), ('b','S4')])即可。
运行代码后得到的是Numpy结构化数组,元素表现为类元组格式属于自定义dtype数组的正常特征,不是代码运行异常导致的。
自定义类型元素赋值说明
你完全可以用列表格式给结构化数组的元素赋值,没有功能限制,示例如下:
import numpy as np # 生成自定义dtype数组 arr = np.empty(2, dtype = [('a',int), ('b','S4')]) # 用列表给单个元素赋值 arr[0] = [1, b'test'] # 用元组赋值也支持 arr[1] = (2, b'demo') print(arr) # 输出结果:[(1, b'test') (2, b'demo')]
需要注意的是:无论赋值时传入的是列表还是元组,Numpy结构化数组存储的元素都是Numpy自定义的结构化标量,不会转为Python原生的列表/元组类型,你可以通过字段名直接访问对应值,例如arr[0]['a']即可读取第一个元素的a字段值。
内容的提问来源于stack exchange,提问作者user2625363
相关产品推荐
相关产品推荐

