This crate provides support for reading/writing ndarray's ArrayBase type
from/to .npy and .npz files. See the
documentation for more information.
This crate is a work-in-progress. It currently supports only a subset of
.npy header descriptors and supports only primitive fixed-size integer,
floating point, and bool types as the array element type. You can implement
ReadableElement and WritableElement for your own types, but the next
breaking release of this library will probably change those traits.
Future plans include support for:
- Memory-mapped files.
- More element types (e.g. structs). If you need support for structs before
this is implemented in
ndarray-npy, check out thenpycrate. - Possibly merging this with the
npycrate.
To use with the default features:
[dependencies]
ndarray-npy = "0.6"The default feature set includes the compressed_npz feature, which enables
support for uncompresssed and compressed .npz files. This requires a
dependency on the zip crate and a compression backend crate.
To use without the default features:
[dependencies]
ndarray-npy = { version = "0.6", default-features = false }With default-features = false, ndarray-npy provides support only for .npy
files, not .npz files. If you want .npz file support, you can select
additional features:
npzenables support for uncompressed.npzfiles. This requires a dependency on thezipcrate.compressed_npzenables support for uncompressed and compressed.npzfiles. This requires a dependency on thezipcrate and a compression backend crate.
For example, you can use just the npz feature:
[dependencies.ndarray-npy]
version = "0.6"
default-features = false
features = ["npz"]Library authors should specify their dependency on ndarray-npy like this:
[dependencies.ndarray-npy]
version = "0.6"
default-features = false
features = [FEATURES_LIST_HERE]where the features list is one of the following:
[]if your crate does not depend on.npzfile support["npz"]if your crate depends on.npzfile support but not compression["compressed_npz"]if your crate depends on.npzfile support with compression
-
0.6.0
- Changed
write_npyto take the array by reference instead of by value, by @flaghacker.
- Changed
-
0.5.0
- Updated to
ndarray0.13. - Updated to Rust 1.38.
- Added
read_npyandwrite_npyconvenience functions. - Added support for
npyformat version 3.0. - Renamed
ReadableElement::read_vecto::read_to_end_exact_vec. - Refactored the error types and variants, including removing the associated
Errortype fromReadable/WritableElementand updating to the new style ofstd::error::Errorimplementation. - Updated the padding calculation to make the total header length be divisible by 64 instead of just 16 when writing files. (See numpy/numpy#9025.)
- Fixed determination of file format version when the addition of padding changes the required version when writing the file.
- Fixed miscellaneous bugs related to overflow and error handling.
- Updated to
-
0.4.0
- Added support for reading/writing arrays of
bool, by @tobni and @jturner314. - Updated to
zip0.5. - Updated to Rust 1.32.
- Renamed the
compressed_npz_defaultfeature tocompressed_npzbecause thezipcrate no longer allows the user to select the compression backend.
- Added support for reading/writing arrays of
-
0.3.0
- Updated to
ndarray0.12. - Updated to
num-traits0.2 (replacing dependency onnum). - Updated to
py_literal0.2.
- Updated to
-
0.2.0
- Updated to
zip0.4. - Made the compression backend for compressed
.npzfiles user-selectable. - Reworked how feature selection works. This should only affect you if you
use
default-features = false, features = ["compressed_npz"].
- Updated to
-
0.1.1
- Improved crate documentation (no functional changes).
-
0.1.0
- Initial release.
Please feel free to create issues and submit PRs. PRs adding more tests would be especially appreciated.
Copyright 2018–2019 Jim Turner and ndarray-npy developers
Licensed under the Apache License, Version 2.0, or the MIT license, at your option. You may not use this project except in compliance with those terms.