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

如何将字符串转换为numpy数组?使用fromstring遇ValueError报错

解决numpy.fromstring转换字符串报错Zero-valued itemsize的问题

问题原因

你用np.fromstring(elements, dtype=str)报错是因为numpy的str dtype默认是可变长度字符串类型,而fromstring需要明确每个元素的固定字节大小(itemsize),可变长度的str无法提供这个值,所以触发ValueError: Zero-valued itemsize。

几种可行的解决方法

  • 最直观的方法:先转成Python列表再转numpy数组
    直接利用Python字符串可迭代的特性,把每个字符拆成列表元素,再转成numpy数组:

    import numpy as np
    elements = "abcxyz"
    Bingrid = np.array(list(elements))
    # 输出:array(['a', 'b', 'c', 'x', 'y', 'z'], dtype='<U1')
    
  • 正确使用fromstring:指定固定长度的字符串dtype
    给dtype参数传固定长度的字符串类型(比如'U1'表示长度为1的Unicode字符串),这样fromstring就能确定每个元素的大小:

    Bingrid = np.fromstring(elements, dtype='U1')
    
  • 字节流方式(适用于Python 3的字节处理场景)
    先把字符串编码成字节流,用'S1' dtype解析,再转成字符串类型:

    Bingrid = np.fromstring(elements.encode(), dtype='S1').astype(str)
    

验证结果

以上三种方法都能得到你需要的array(["a", "b", "c", "x", "y", "z"])格式的numpy数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:00:00