Python 如何使用numpy将uint32整数写入4字节序列?
我声明了一个包含单个无符号整数的numpy ndarray:Python 如何使用numpy将uint32整数写入4字节序列?,python,numpy,byte,uint32,Python,Numpy,Byte,Uint32,我声明了一个包含单个无符号整数的numpy ndarray: import numpy as np foo=np.array([3600000],dtype='uint32') 我想将这个数组存储到一个4字节的序列中。 我已经测试了一些选项,例如struct.pack()和struct.pack_into()方法,但没有结果。 我还尝试了numpy.ndarray.tobytes()方法,该方法将数组的内容转换为字节对象: bar=np.ndarray.tobytes(foo) 唉,输出
import numpy as np
foo=np.array([3600000],dtype='uint32')
我想将这个数组存储到一个4字节的序列中。
我已经测试了一些选项,例如struct.pack()和struct.pack_into()方法,但没有结果。
我还尝试了numpy.ndarray.tobytes()方法,该方法将数组的内容转换为字节对象:
bar=np.ndarray.tobytes(foo)
唉,输出字节对象的长度是4位!
如何控制输出字节序列的位数
非常感谢你的帮助 正如Warren Weckesser所指出的那样,
字节
对象的长度是以字节而不是位为单位给出的。
所以在这种情况下,
bar
确实有4个字节的长度。“唉,输出字节对象有4个字节的长度!”我感到困惑。数组foo
包含一个类型为uint32
的元素(即无符号32位整数)。这是四个字节。为什么你对条的长度是4感到失望?嗨,沃伦!谢谢你的回复;输出字节对象的长度为4位!很抱歉造成混乱;我将编辑我的问题以澄清这一点。bar
是一个bytes
对象,包含4个字节,而不是位。谢谢Warren!这绝对回答了我的问题!不太相关,但可以反向转换它numpy.ndarray(buffer=,shape=,dtype=)