rendarray-0.2.0-alpha.8 has been yanked.
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 an easy to use 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 very efficient on contiguous c-order arrays (the default layout, without any transposition or discontiguous subslicing), and on arrays where the lowest dimension is contiguous.
- Array views can be used to slice and mutate any
[T]
data.
Status and Lookout
- Still iterating on the API
- Performance status:
- Arithmetic involving contiguous c-order arrays and contiguous lowest dimension arrays optimizes very well.
.fold()
and.zip_mut_with()
are the most efficient ways to perform single traversal and lock step traversal respectively.- Transposed arrays where the lowest dimension is not c-contiguous is still a pain point.
- 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
rblas
integration