#file-format #ndarray #array #numpy #npy #npz

ndarray-npy

.npy and .npz file format support for ndarray

14 releases (8 breaking)

0.9.1 Sep 14, 2024
0.8.1 Nov 5, 2021
0.8.0 Apr 7, 2021
0.7.1 Jan 19, 2021
0.2.0 Jun 23, 2018

#65 in Parser implementations

Download history 21289/week @ 2024-07-19 15049/week @ 2024-07-26 16231/week @ 2024-08-02 18877/week @ 2024-08-09 19300/week @ 2024-08-16 21568/week @ 2024-08-23 17344/week @ 2024-08-30 24134/week @ 2024-09-06 21530/week @ 2024-09-13 22965/week @ 2024-09-20 21954/week @ 2024-09-27 22272/week @ 2024-10-04 24705/week @ 2024-10-11 22008/week @ 2024-10-18 23845/week @ 2024-10-25 16144/week @ 2024-11-01

91,012 downloads per month
Used in 62 crates (50 directly)

MIT/Apache

93KB
1.5K SLoC

ndarray-npy

Continuous integration Dependencies status ndarray-npy at crates.io Documentation Matrix chat at #rust-sci:matrix.org IRC at #rust-sci on OFTC

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 .npz files. (Memory-mapped .npy files are already supported.)
  • More element types (e.g. structs). If you need support for structs before this is implemented in ndarray-npy, check out the npy crate.
  • Possibly merging this with the npy crate.

Using with Cargo

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:

  • npz enables support for uncompressed .npz files. This requires a dependency on the zip crate.
  • compressed_npz enables support for uncompressed and compressed .npz files. This requires a dependency on the zip crate and a compression backend crate.
  • num-complex-0_4 enables support for complex floating point element types provided by version 0.4 of the num-complex crate.

For example, you can use just the npz feature:

[dependencies.ndarray-npy]
version = "0.9.1"
default-features = false
features = ["npz"]

Library authors

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 .npz file support
  • ["npz"] if your crate depends on .npz file support but not compression
  • ["compressed_npz"] if your crate depends on .npz file support with compression
  • ["num-complex-0_4"] if your crate depends on support for complex element types but not .npz files
  • ["num-complex-0_4", "npz"] if your crate depends on support for complex element types and .npz files but not compression
  • ["num-complex-0_4", "compressed_npz"] if your crate depends on support for complex element types and .npz files with compression

Releases

See RELEASES.md.

Contributing

Please feel free to create issues and submit PRs. PRs adding more tests would be especially appreciated.

License

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.

Dependencies

~4–5MB
~102K SLoC