我正在尝试从格式化为 complex64 但大端格式的非常大的文件中加载数据。由于它们的大小,我想使用 memmap。我可以像这样将数组加载为大端浮点数:
arr = np.memmap(fn, dtype='>f4', shape=(M,N,2))
但是如果我尝试将其视为复数,它会恢复字节交换,即
arr[m,n,0]+1j*arr[m,n,1] != arr[m,n].view(dtype=np.complex64)
但
arr[m,n,0]+1j*arr[m,n,1] == arr[m,n].view(dtype=np.complex64).byteswap()
但这要么创建数据副本,要么修改文件。有没有办法在不复制数据或修改现有文件的情况下完成这项工作?