1

我有一个性格。我想将其 ascii 值表示为一个 numpy 布尔数组。这有效,但似乎扭曲了。有没有更好的办法?

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)
4

2 回答 2

1

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

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

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

np.unpackbits(np.array(ord(mychar), dtype=np.uint8)).astype(bool)[1:]
于 2013-07-19T15:05:38.970 回答
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)

是不是更不扭曲?

于 2013-07-19T14:42:57.453 回答