我有一个二进制文件(> 1GB),其中包含在Matlab中创建的单精度数据。
我是Python新手,想在Python中读取相同的文件结构。
任何帮助将不胜感激:
我可以从Matlab加载文件,如下所示:
fid = fopen('file.dat','r');
my_data = fread(fid,[117276,1794],'single');
非常感谢
InP
答案 0 :(得分:0)
使用numpy通过fromfile
https://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html最简单:
np.fromfile('file.dat', dtype=np.dtype('single')).reshape((117276, 1794))
其中np.dtype('single')
与np.dtype('float32')
相同
请注意,由于MATLAB会按列顺序读取,而numpy会按行顺序进行重塑,因此它可能会根据您想要的内容进行转置。
此外,我假设使用numpy是可以的,因为您来自MATLAB,如果您想继续拥有类似MATLAB的函数,而不必像这些答案那样处理纯python,那么最终可能会使用numpy {{ 3}}