Error while reading .npy file: parsing header failed: unsupported type O
thgngu opened this issue · comments
I'm using julia 0.6.1, installed NPZ by Pkg.add("NPZ")
I have a .npy
file that created by numpy 1.14.3 on Ubuntu 16.04, Conda 4.4.10.
I get the following error trying to read it in
parsing header failed: unsupported type O
Stacktrace:
[1] parsedtype(::String) at /opt/anaconda3/share/julia/site/v0.6/NPZ/src/NPZ.jl:135
[2] parseheader(::String) at /opt/anaconda3/share/julia/site/v0.6/NPZ/src/NPZ.jl:157
[3] npzreadarray(::IOStream) at /opt/anaconda3/share/julia/site/v0.6/NPZ/src/NPZ.jl:191
[4] npzread(::String) at /opt/anaconda3/share/julia/site/v0.6/NPZ/src/NPZ.jl:218
Here is my file if you have time to take a look at. It's just a regular 1D, np.float64 array.
I think you have the wrong file? That file indeed contains a float64 (<f8
) array, which I can load just fine in NPZ. However, you're getting an error about type O
, which is the python object type.
Adding support for importing python objects inside julia is not an easy task.
I had the same problem and a get around that by using PyCall
, like this:
using PyCall
np = pyimport("numpy")
data = np.load("data.npy", allow_pickle=true)
me too, I had the same problem and a get around that by using PyCall.
npy save a Object type data, load use this allow_pickle=true, is OK.
but NPZ.npzread() is unsupported type O
with the PyCall solution above, you then access the variables within an npz file using get(data, :my_variable_name)