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

如何在Python二维数组中输入字符串?为何仅显示首字符?

numpy字符串数组截断问题及np.empty支持性解答

问题原因

使用label = np.empty([17,2],dtype=str)创建数组时,numpy默认将字符串类型设为长度1的Unicode字符串(等价于dtype='U1'),因此赋值"asd"这类多字符字符串时,只会保留首字符。

np.empty对字符串的支持性

np.empty完全支持创建字符串类型数组,它的作用是分配内存空间但不初始化元素值,只要正确指定字符串类型参数即可。

解决方法

  • 指定固定长度的字符串类型:根据需要设置字符串最大长度,比如要存储3个字符的字符串,用dtype='U3':
    label = np.empty([17,2], dtype='U3')
    label[1][1] = "asd"
    label[2][1] = "asd"
    print(label)
    
  • 使用object类型存储任意长度字符串:如果字符串长度不固定,用dtype=object让数组直接存储Python字符串对象:
    label = np.empty([17,2], dtype=object)
    label[1][1] = "asd"
    label[2][1] = "asd"
    print(label)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 13:43:04