0

我正在尝试从格式化为 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()

但这要么创建数据副本,要么修改文件。有没有办法在不复制数据或修改现有文件的情况下完成这项工作?

4

1 回答 1

0

似乎 .byteswap() 方法不会修改或复制数据。所以

narr = arr[m,n].view(dtype=np.complex64).byteswap()

是要走的路。希望这对其他人有帮助。

于 2017-06-08T16:48:52.187 回答