将 numpy uint8 数组转换为字符串

时间:2021-01-20 19:58:08

标签: python arrays numpy

我想将一个 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 吗?任何指针?

2 个答案:

答案 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')
相关问题