gpt4 book ai didi

numpy:在大端写入 uint16 的大型二维数组

转载 作者:行者123 更新时间:2023-12-05 04:06:47 28 4
gpt4 key购买 nike

我正在尝试将 512x512 uint16 2D 数组保存为二进制电影的二进制帧。格式需要大端,但我一直在写入小端数据(试图在 Matlab、java 中读取它,它仍然是小端)。我尝试如下所示更改字节顺序,但无济于事。我很抱歉这是一个愚蠢的问题。

sys.byteorder = 'big'
for frame in range (0,1)
fid.write(array)
fid.close()
sys.byteorder = 'little';

以下线程似乎是相关的,但如果我尝试使用 struct.pack 更改字节顺序,我会收到垃圾邮件。

Convert integer to big endian binary file in python

最佳答案

您可以使用 < 强制更改 numpy 数组的字节顺序/> dtype 说明符:

>>> import numpy as np
>>> a = np.arange(5, dtype=np.uint16)
>>> a.dtype.str
'<u2'
>>> b = a.astype('>u2')

>>> a.tostring()
b'\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00'
>>> b.tostring()
b'\x00\x00\x00\x01\x00\x02\x00\x03\x00\x04'

关于numpy:在大端写入 uint16 的大型二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49396332/

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