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

为什么NumPy中要使用np.string_而不能用不带下划线的np.string?

输出结果含义

  • 数组输出中每个元素前缀的b是Python字节串(bytes)的标识,说明数组存储的不是普通的Unicode字符串,而是字节序列。np.string_本身就是NumPy的定长字节串类型,创建数组时会自动把输入的整数转换为对应的字节串格式存储。
  • dtype输出的|S1是NumPy对该数据类型的标准化表示:
    • S是定长字节串类型的缩写,对应你指定的np.string_
    • 后缀的数字1表示每个元素的最大占用长度为1字节,你输入的都是单个数字,转换为字节串后仅占1字节,因此显示为S1
    • 前缀的|是字节序标记,字节串类型不需要区分大小端字节序,因此用该符号表示不关心字节序。

为什么必须使用np.string_而不能用np.string

NumPy的类型命名有统一规则:所有和Python原生类型、标准库命名重名的NumPy专属类型,都会在名称末尾加下划线后缀,避免命名冲突:

  • Python标准库本身存在string模块,如果NumPy直接使用np.string作为类型名会和现有命名冲突,因此将自身的字节串类型命名为np.string_,对应的Unicode字符串类型命名为np.str_
  • np.string本身并不是NumPy的合法内置属性,直接调用会抛出属性不存在的错误,自然不能作为dtype参数使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:45:00