You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Numpy定义结构化数组dtype时报ValueError错误如何解决

问题原因

你代码的核心问题是结构化数组dtype定义的字典键名写错了。NumPy要求定义结构化数据类型时,存放字段名的字典固定键为names,你误写为了OrderDates,导致NumPy无法识别结构化类型的定义规则,抛出格式校验错误。

修正方案

  • 将dtype字典里的OrderDates键改为names即可
  • 额外说明:你当前定义的数组长度为3,但你的4组源数据都包含4个元素,如果后续要往数组里赋值,建议将np.zeros(3)修改为np.zeros(4),仅打印dtype的话数组长度不影响输出结果。

修正后代码

import numpy as np

OrderDate = ['05-11-1996', '01-01-1971', '03-15-1969', '08-09-1983']
OrderAmount = [25.9, 44.8, 36.1, 29.4]
OrderNumber = [25, 45, 37, 19]
OrderName=['Ronaldo','Messi','Dybala','Pogba']

# 修正dtype的键名为names
data = np.zeros(3, dtype={'names':('OrderDate','OrderAmount', 'OrderNumber','OrderName'),
                      'formats':('U10','f8','i4','U10')})
print(data.dtype)

输出结果

运行后可得到你预期的输出:

[('OrderDate', '<U10'), ('OrderAmount', '<f8'), ('OrderNumber', '<i4'), ('OrderName', '<U10')]

内容的提问来源于stack exchange,提问作者John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 00:54:04