2017-09-21 67 views
1

我无法将类型为bytes8的numpy数组转换为字符串。我想我需要解码的数据,但我不知道如何做一个numpy数组。该数组的大小为[1200,8],但是数据沿着最大维度重复,所以我只需要将一行转换为字符串。将字节8字符的numpy数组转换/解码为字符串

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

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

回答

0

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

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

回报

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

,如果你那么想作出一个完整的字符串,你可以做

''.join(array) 

这将返回字符串

55570 

可以实现相同的只使用一条线a nd括号将会创建一个generator object

生成器对象不会在内存中创建列表,所以它会更快。

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