是否有直接的方式而不是以下方式?
np.uint32(int.from_bytes(b'\xa3\x8eq\xb5', 'big'))
答案 0 :(得分:3)
诀窍是获得正确的数据类型。要从字符串中读取大端uint32,数据类型(作为字符串)为'>u4'
。
>>> np.fromstring(b'\xa3\x8eq\xb5', dtype='>u4')
array([2744021429], dtype=uint32)
这会给你一个数组,但从那里得到一个标量是一个非常微不足道的事情。更重要的是,它允许您一次性阅读大量这些对象(您可以使用int.from_bytes
技巧)。
答案 1 :(得分:2)
为此不建议使用np.fromstring
。请改用np.frombuffer
。您还可以传入普通的numpy dtype:
import numpy as np
np.frombuffer(b'\xa3\x8eq\xb5', dtype=np.uint32)
答案 2 :(得分:1)
我不确定数据类型。
np.fromstring(b'\xa3\x8eq\xb5', dtype='<i')