我有一个hexa字符串,我想将其转换为int的numpy数组。
我不想使用for
循环,因为不建议循环使用numpy数组。
所以我做了以下事情:
vector = np.fromstring( s.decode('hex'), dtype=np.uint8 )
如果例如s = 'a312'
,则s.decode('hex')
会返回正确的'\xa3\x12'
。
但如果s = 'a320'
,s.decode('hex')
会返回'\xa3 '
,这看起来有点奇怪,因为我期待'\xa3\x20'
。
你能帮助我吗?
答案 0 :(得分:1)
重点是Pyhon中的二进制字符串表示为 ASCII等效。
相当于'\x20'
是一个空格,正如ASCII table中所见:
Hex Dec ASCII 20 32 (space)
如果您在终端中写'\x20'
,它将打印一个空格:
>>> '\x20'
' '
>>> 'a320'.decode('hex') == '\xa3\x20'
True
请注意,这只是表示的方面:在窗帘后面,二进制字符串包含0010 0000
二进制值。