我认为这是一个简单的问题,但到目前为止我还没有找到答案.
我使用相当大(~2 GB)的二进制数据图像.我用线将它们加载到python中
data = np.memmap(filename, dtype=np.dtype('uint16'), mode='r').byteswap()
Run Code Online (Sandbox Code Playgroud)
对于大文件,这可能需要几秒钟.无论如何,我注意到同一行但没有byteswapping只需要一瞬间.
所以问题是:有没有办法直接在数据类型中指定字节顺序,所以我之后不需要做byteswap?根据http://docs.scipy.org/doc/numpy/reference/arrays.dtypes.html,
数据类型对象(...)描述数据的以下方面:(...)3.数据的字节顺序(little-endian或big-endian)(...)
如何为16位无符号整数执行此操作?这样的事情np.dtype('>uint16')
对我没用,他们给我一个TypeError: data type ">uint16" not understood
错误.
谢谢!
将dtype指定为>H
(数字类型代码)或>u2
(数组协议类型字符串):
np.memmap('test.bin', dtype=np.dtype('>u2'), mode='r')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1989 次 |
最近记录: |