2017-06-08 10 views
0

私はcomplex64にフォーマットされたビッグエンディアンの非常に大きなファイルからデータをロードしようとしています。そのサイズのために、私はmemmapを使いたいと思います。ビッグエンディアンは、このようなように浮かぶように私は、配列を読み込むことができます。ビッグエンディアンの複素数を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) 

しかし

byteswappingすなわち戻り複素数としてのビューを取得しようとした場合
arr[m,n,0]+1j*arr[m,n,1] == arr[m,n].view(dtype=np.complex64).byteswap() 

しかし、これはデータのコピーを作成するか、ファイルを変更します。データのコピーを作成したり、既存のファイルを変更せずにこの作業を行う方法はありますか?

答えて

0

.byteswap()メソッドはデータを変更またはコピーしないようです。だから、

NARR = ARR [M、N] .view(DTYPE = np.complex64).byteswap()

移動する方法です。うまくいけばそれは他の誰かを助けることでしょう

関連する問題