Skip to content
NumPy file format (de-)serialization in Rust
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
benches
examples
npy-derive New version, updated dependencies, Readme & docs Mar 5, 2018
src Allow nested structured records Mar 13, 2018
tests Allow nested structured records Mar 13, 2018
.gitignore Bump version, add a roundtrip test, change interface slightly to borr… Mar 7, 2017
.travis.yml
Cargo.toml New version, updated dependencies, Readme & docs Mar 5, 2018
README.md New version, updated dependencies, Readme & docs Mar 5, 2018

README.md

npy-rs

crates.io version Documentation Build Status

Numpy format (*.npy) serialization and deserialization.

NPY is a simple binary data format. It stores the type, shape and endianness information in a header, which is followed by a flat binary data field. This crate offers a simple, mostly type-safe way to read and write *.npy files. Files are handled using iterators, so they don't need to fit in memory.

Usage

To use npy-rs, two dependencies must be specified in Cargo.toml:

npy = "0.4"
npy-derive = "0.4"

A typical way to import everything needed is:

#[macro_use]
extern crate npy_derive;
extern crate npy;

The npy-derive dependency is only needed for structured array serialization.

Data can now be imported from a *.npy file:

use npy::NpyData;

std::fs::File::open("data.npy").unwrap().read_to_end(&mut buf).unwrap();
let data: Vec<f64> = NpyData::from_bytes(&buf).unwrap().to_vec();

and exported to a *.npy file:

npy::to_file("data.npy", data).unwrap();

See the documentation for more information.

Several usage examples are available in the examples directory; the simple example shows how to load a file, roundtrip shows both reading and writing. Large files can be memory-mapped as illustrated in the large example.

Documentation

You can’t perform that action at this time.