【发布时间】:2018-07-27 20:55:05
【问题描述】:
我已经声明了一个包含单个无符号整数的 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)
唉,输出字节对象的长度为 4 位! 如何控制输出字节序列的位数?
非常感谢您的帮助!
【问题讨论】:
-
“唉,输出字节对象的长度是 4!” 我很困惑。数组
foo包含一个uint32类型的元素(即一个无符号的 32 位整数)。那是四个字节。为什么你对bar的长度为4感到失望? -
嗨沃伦!感谢您的回复;输出字节对象的长度为 4 位!对困惑感到抱歉;我将编辑我的问题以澄清这一点。
-
bar是一个bytes对象,有 4 个字节,而不是位。 -
谢谢沃伦!这绝对回答了我的问题!
-
不是很相关,但可以反向转换
numpy.ndarray(buffer=<...>, shape=<...>, dtype=<...>)