python:将ascii字符转换为布尔数组

时间:2013-07-19 10:46:51

标签: python arrays numpy boolean ascii

我有一个角色。我想把它的ascii值表示为一个庞大的布尔数组。 这有效,但似乎扭曲了。还有更好的方法吗?

bin_str = bin(ord(mychar))
bool_array = array([int(x)>0 for x in list(bin_str[2:])], dtype=bool)

代表

mychar = 'd'

bool_array的期望结果值是

array([ True,  True, False, False,  True, False, False], dtype=bool)

2 个答案:

答案 0 :(得分:1)

您可以使用np.unpackbits直接从uint8数组中提取位:

np.unpackbits(np.array(ord(mychar), dtype=np.uint8))

编辑:仅获取布尔数组中的7个相关位:

np.unpackbits(np.array(ord(mychar), dtype=np.uint8)).astype(bool)[1:]

答案 1 :(得分:0)

这或多或少是一回事:

>>> import numpy as np
>>> mychar = 'd'
>>> np.array(list(np.binary_repr(ord(mychar), width=4))).astype('bool')
array([ True,  True, False, False,  True, False, False], dtype=bool)

是否减少了扭曲?

相关问题