将numpy byte8字符数组转换/解码为string

时间:2017-09-21 14:38:36

标签: python string numpy decode

我在将一个类型为bytes8的numpy数组转换为字符串时遇到了麻烦。我想我需要解码数据,但我不知道如何为一个numpy数组做这个。该数组的大小为[1200,8],但数据沿最大维度重复,因此我只需要将一行转换为字符串。

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

我尝试过像.tostring()这样的东西,但没有运气。问题似乎是对象是一个numpy数组。

1 个答案:

答案 0 :(得分:0)

使用包含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)