【问题标题】:Convert / decode numpy array of byte8 characters to string将字节8字符的numpy数组转换/解码为字符串
【发布时间】:2017-09-21 14:38:36
【问题描述】:

我在将 bytes8 类型的 numpy 数组转换为字符串时遇到问题。我想我需要解码数据,但我不确定如何为 numpy 数组执行此操作。该数组的大小为 [1200,8] 但数据沿最大维度重复,因此我只需要将一行转换为字符串。

数组的第一个条目在命令行上给出以下输出: 数组([b'5',b'5',b'5',b'7',b'0',b'',b'',b''], dtype='|S1')

我尝试过 .tostring() 之类的方法,但没有成功。问题似乎是该对象是一个 numpy 数组。

【问题讨论】:

    标签: python string numpy decode


    【解决方案1】:

    使用包含encoding="utf-8" 的列表解析,否则b 仍将保留在列表中。

    array = [str(s, encoding='UTF-8') for s in array]
    

    返回

    ['5', '5', '5', '7', '0', ' ', ' ', ' ']
    

    如果你想制作一个完整的字符串,你可以这样做

    ''.join(array)
    

    返回字符串

    55570
    

    您可以只使用一行和括号来实现相同的目的,这将创建一个generator object

    生成器对象不会在内存中创建列表,因此会更快。

    array = ''.join(str(s, encoding='UTF-8') for s in array)
    

    【讨论】:

      猜你喜欢
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2014-03-07
      • 2015-03-15
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多