Python 将字节8字符的numpy数组转换/解码为字符串

Python 将字节8字符的numpy数组转换/解码为字符串,python,string,numpy,decode,Python,String,Numpy,Decode,我无法将bytes8类型的numpy数组转换为字符串。我想我需要解码数据,但我不确定如何对numpy数组进行解码。数组的大小为[1200,8],但数据沿最大维度重复,因此我只需要将一行转换为字符串 数组的第一个条目在命令行上提供以下输出: 数组([b'5',b'5',b'5',b'7',b'0',b'',b'',b'', 数据类型=“| S1”) 我试过像.tostring()这样的方法,但没有成功。问题似乎是对象是一个numpy数组。使用包含encoding=“utf-8”的列表理解,否则b仍

我无法将bytes8类型的numpy数组转换为字符串。我想我需要解码数据,但我不确定如何对numpy数组进行解码。数组的大小为[1200,8],但数据沿最大维度重复,因此我只需要将一行转换为字符串

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


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

使用包含
encoding=“utf-8”
的列表理解,否则
b
仍将保留在列表中

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

['5', '5', '5', '7', '0', ' ', ' ', ' ']
如果你想制作一个完整的字符串,你可以这样做

''.join(array)
它将返回字符串

55570
您只需使用一行和括号即可实现相同的功能,这将创建一个
生成器对象

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

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