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

如何在numpy结构化数组中设置多种数据类型

问题原因

你使用的dtype声明格式不符合numpy结构化数组的类型规范:直接传入('<U10', np.dtype('i'))时,numpy会将该元组解析为「基类型+单元素形状」的组合,而非两个字段的复合类型,因此触发数据描述符大小不匹配的报错。

正确设置方式

分两种常用场景:

  • 场景1:需要为字段命名(推荐,后续取值更便捷)
    将dtype设置为包含「字段名+对应类型」元组的列表即可,示例代码如下:
import numpy as np
arr = np.array(
    [('2021-08-29', 125), ('2021-09-12', 75), ('2021-09-19', 75),
     ('2021-11-07', 75), ('2021-12-31', 125)],
    dtype=[('date', '<U10'), ('value', 'i')]
)

后续可通过arr['date']直接提取所有日期字段,arr['value']提取所有数值字段。

  • 场景2:不需要字段名,仅按位置指定类型
    可以直接传入逗号分隔的类型字符串作为dtype,示例代码如下:
import numpy as np
arr = np.array(
    [('2021-08-29', 125), ('2021-09-12', 75), ('2021-09-19', 75),
     ('2021-11-07', 75), ('2021-12-31', 125)],
    dtype='<U10, i'
)

该写法下numpy会为字段自动分配默认名称f0、f1,可通过下标或默认字段名取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:12:01