python - How can I open a 3D .npy file in R or MATLAB? -
i have .npy files of shape[512, 512, x] x going maximally 400. in these arrays (is right term? i'm not sure right terminology), there floating point numbers between 0 , one. grey levels of noise image. image 512x512 pixels , per npy file have different number of images saved.
i computations noise images have been unable import arrays in r or matlab:
in r tried rcppcnpy - package , got error "unsupported dimension in npyload".
in matlab, tried readnpy - function , got error "this file not appear numpy format based on header." file has no header. function works 2d arrays?
how access 3d-array saved before?
any in matlab or r appreciated!
npy unique numpy file format. , yes, have header block contains information version, dimensions, strides, , dtype.
a quick glance @ readnpy shows relatively new , experimental. check them capabilities.
np.savetxt writes text csv files. used (look @ number of question np.genfromtxt , np.loadtxt), nature of 'paper' 2d - lines of columns. don't know of standard write higher dimensional arrays - reshaping 2d , simplest.
scipy.io.savemat can write matlab compatible .mat files. (and loadmat) capable of reading/writing higher d arrays, , matlab structures , cells. best tested file interchange between numpy , matlab.
a newer matlab save format uses hdf5 files. python h5py package can read , write well. there have been scattering of questions reading type of file produced matlab. python-created hdf5 dataset transposed in matlab
keep in mind matlab dimension ordering equivalent numpy 'f' order.
compare:
xf=np.arange(12).reshape(3,4,order='f') # saved savemat >> xf(:).' # in octave ans = 0 1 2 3 4 5 6 7 8 9 10 11 without order=f, octave gives
0 4 8 1 5 9 2 6 10 3 7 11 and
>> xf xf = 0 3 6 9 1 4 7 10 2 5 8 11 >> x x = 0 1 2 3 4 5 6 7 8 9 10 11 np.asfortranarray(x) doesn't seem make difference.
Comments
Post a Comment