The ndarray crate provides an N-dimensional container similar to numpy’s
ndarray.
ArrayBase: The N-dimensional array type itself.Array: An array where the data is shared and copy on write, it can act as both an owner of the data as well as a lightweight view.OwnedArray: An array where the data is owned uniquely.ArrayView,ArrayViewMut: Lightweight array views.
Highlights
- Generic N-dimensional array
- Slicing, also with arbitrary step size, and negative indices to mean elements from the end of the axis.
- There is both a copy on write array (
Array), or a regular uniquely owned array (OwnedArray), and both can use read-only and read-write array views. - Iteration and most operations are efficient on arrays with contiguous innermost dimension.
- Array views can be used to slice and mutate any
[T]data.
Crate Status
- Still iterating on the API
- Performance status:
- Arithmetic involving arrays of contiguous inner dimension optimizes very well.
.fold()and.zip_mut_with()are the most efficient ways to perform single traversal and lock step traversal respectively..iter()and.iter_mut()are efficient for contiguous arrays.
- There is experimental bridging to the linear algebra package
rblas.
Crate Feature Flags
assign_ops- Optional, requires nightly
- Enables the compound assignment operators
rustc-serialize- Optional, stable
- Enables serialization support
rblas- Optional, stable
- Enables
rblasintegration