将python字节字符串转换为numpy int?

时间:2015-03-11 19:44:21

标签: python numpy

是否有直接的方式而不是以下方式?

np.uint32(int.from_bytes(b'\xa3\x8eq\xb5', 'big'))

3 个答案:

答案 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')