我在将一个类型为bytes8的numpy数组转换为字符串时遇到了麻烦。我想我需要解码数据,但我不知道如何为一个numpy数组做这个。该数组的大小为[1200,8],但数据沿最大维度重复,因此我只需要将一行转换为字符串。
数组的第一个条目在命令行上提供以下输出: 数组([b'5',b'5',b'5',b'7',b'0',b'',b'',b''], D型= '| S1')
我尝试过像.tostring()这样的东西,但没有运气。问题似乎是对象是一个numpy数组。
答案 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)