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,
primitive floating point, complex floating point, and bool types as the array
element type. You can implement the *Element traits for your own types, but
the next breaking release of this library will probably change those traits.
Future plans include support for:
- Memory-mapped
.npzfiles. (Memory-mapped.npyfiles are already supported.) - 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.9.1"The default feature set includes the compressed_npz feature, which enables
support for uncompresssed and compressed .npz files, and the
num-complex-0_4 feature, which enables support for complex floating point
element types provided by version 0.4 of the num-complex crate. The
compressed_npz feature requires a dependency on the zip crate and a
compression backend crate.
To use without the default features:
[dependencies]
ndarray-npy = { version = "0.9.1", default-features = false }With default-features = false, ndarray-npy provides support only for .npy
files, not .npz files, and it does not provide support for complex number
elements. If you want support for .npz files or complex number elements, 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.num-complex-0_4enables support for complex floating point element types provided by version 0.4 of thenum-complexcrate.
For example, you can use just the npz feature:
[dependencies.ndarray-npy]
version = "0.9.1"
default-features = false
features = ["npz"]Library authors should specify their dependency on ndarray-npy like this:
[dependencies.ndarray-npy]
version = "0.9.1"
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["num-complex-0_4"]if your crate depends on support for complex element types but not.npzfiles["num-complex-0_4", "npz"]if your crate depends on support for complex element types and.npzfiles but not compression["num-complex-0_4", "compressed_npz"]if your crate depends on support for complex element types and.npzfiles with compression
See RELEASES.md.
Please feel free to create issues and submit PRs. PRs adding more tests would be especially appreciated.
Copyright 2018–2024 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.