gpt4 book ai didi

python - 如何直接在 16 位无符号整数的 numpy 数据类型中指定字节序?

转载 作者:太空狗 更新时间:2023-10-29 20:58:56 25 4
gpt4 key购买 nike

我认为这是一个简单的问题,但到目前为止我还没有找到答案。

我使用相当大(~2 GB)的二进制数据图像。我用这条线将它们加载到 python 中

data = np.memmap(filename, dtype=np.dtype('uint16'), mode='r').byteswap()

对于大文件,这可能需要几秒钟。无论如何,我注意到同一行但没有字节交换只需要一瞬间。

所以问题是:有没有一种方法可以直接在数据类型中指定字节顺序,这样我就不需要之后进行字节交换了?根据http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html ,

A data type object (...) describes the following aspects of the data: (...) 3. Byte order of the data (little-endian or big-endian) (...)

如何为 16 位无符号整数执行此操作?像 np.dtype('>uint16') 这样的东西没有为我工作,他们给了我一个 TypeError: data type ">uint16" not understood错误。

谢谢!

最佳答案

将 dtype 指定为 >H ( Numeric typecodes ) 或 >u2 ( Array-protocol type strings ):

np.memmap('test.bin', dtype=np.dtype('>u2'), mode='r')

关于python - 如何直接在 16 位无符号整数的 numpy 数据类型中指定字节序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20746505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com