title: Is there a way with numpy to memmap a big-endian complex number?
body: <p>I'm trying to load data from very large files that are formatted to be complex64 but in big-endian. Because of their size I want to use memmap. I can load the array as big-endian floats like such:</p>
  
  <pre><code>arr = np.memmap(fn, dtype='&gt;f4', shape=(M,N,2))
  </code></pre>
  
  <p>but if I try to get a view of it as a complex number it reverts the byteswapping ie</p>
  
  <pre><code>arr[m,n,0]+1j*arr[m,n,1] != arr[m,n].view(dtype=np.complex64)
  </code></pre>
  
  <p>but </p>
  
  <pre><code>arr[m,n,0]+1j*arr[m,n,1] == arr[m,n].view(dtype=np.complex64).byteswap()
  </code></pre>
  
  <p>But this either creates a copy of the data or modifies the files. Is there a way to make this work without making a copy of the data or modifying the existing files?</p>