我想将一个 numpy uint8 数组转换为 python 中的字符串
import numpy as np
arr = np.array([98, 111,111,107])
print(arr.view('c')) # I can see the output [b'b' b'' b'o' b'' b'o' b'' b'k' b'']
我想要 book
吗?任何指针?
答案 0 :(得分:1)
string_ = [chr(i) for i in arr] # outputs: ['b', 'o', 'o', 'k']
那么,
string_ = ''.join(string_) # outputs: 'book'
答案 1 :(得分:1)
你面临的主要问题是你没有有一个UInt8
数组,你有一个Int64
数组,所以当你把它看作一个字符数组,你会得到很多无关的数据。
如果您正确设置了 dtype
,您可以适当地查看。
arr = np.array([98, 111,111,107], dtype=np.uint8)
arr.view(f'S{arr.shape[0]}')
# array([b'book'], dtype='|S4')