Crate ndarray [−] [src]
The ndarray crate provides an N-dimensional container for general elements
and for numerics.
- ArrayBase: The N-dimensional array type itself.
 It is used to implement both the owned arrays and the views; see its docs for an overview of all array features.
- The main specific array type is Array, which owns its elements.
Highlights
- Generic N-dimensional array
- Slicing, also with arbitrary step size, and negative indices to mean elements from the end of the axis.
- Views and subviews of arrays; iterators that yield subviews.
- Higher order operations and arithmetic are performant
- Array views can be used to slice and mutate any [T]data usingArrayView::fromandArrayViewMut::from.
Crate Status
- Still iterating on and evolving the crate
- The crate is continuously developing, and breaking changes are expected during evolution from version to version. We adopt the newest stable rust features if we need them.
 
- Performance:
- Prefer higher order methods and arithmetic operations on arrays first, then iteration, and as a last priority using indexed algorithms.
- The higher order functions like .map(),.map_inplace(),.zip_mut_with(),Zipandazip!()are the most efficient ways to perform single traversal and lock step traversal respectively.
- Performance of an operation depends on the memory layout of the array or array view. Especially if it's a binary operation, which needs matching memory layout to be efficient (with some exceptions).
- Efficient floating point matrix multiplication even for very large matrices; can optionally use BLAS to improve it further.
 
Crate Feature Flags
The following crate feature flags are available. They are configured in your
Cargo.toml.
- rustc-serialize- Optional, compatible with Rust stable
- Enables serialization support for rustc-serialize 0.3
 
- serde- Optional, compatible with Rust stable
- Enables serialization support for serde 0.9
 
- blas- Optional and experimental, compatible with Rust stable
- Enable transparent BLAS support for matrix multiplication.
Uses blas-sysfor pluggable backend, which needs to be configured separately.
 
Modules
| linalg | Linear algebra. | 
| prelude | ndarray prelude. | 
Macros
| array | Create an  | 
| azip | Array zip macro: lock step function application across several arrays and producers. | 
| s | Slice argument constructor. | 
| stack | Stack arrays along the given axis. | 
Structs
| ArrayBase | An N-dimensional array. | 
| Axes | An iterator over the length and stride of each axis of an array. | 
| Axis | An axis index. | 
| AxisChunksIter | An iterator that traverses over the specified axis and yields views of the specified size on this axis. | 
| AxisChunksIterMut | An iterator that traverses over the specified axis and yields mutable views of the specified size on this axis. | 
| AxisDescription | Description of the axis, its length and its stride. | 
| AxisIter | An iterator that traverses over an axis and and yields each subview. | 
| AxisIterMut | An iterator that traverses over an axis and and yields each subview (mutable) | 
| Dim | Dimension description. | 
| IndexedIter | An iterator over the indexes and elements of an array. | 
| IndexedIterMut | An iterator over the indexes and elements of an array (mutable). | 
| Indices | An iterator over the indexes of an array shape. | 
| InnerIter | An iterator that traverses over all dimensions but the innermost, and yields each inner row. | 
| InnerIterMut | An iterator that traverses over all dimensions but the innermost, and yields each inner row (mutable). | 
| Iter | An iterator over the elements of an array. | 
| IterMut | An iterator over the elements of an array (mutable). | 
| Shape | A contiguous array shape of n dimensions. | 
| ShapeError | An error related to array shape or layout. | 
| Si | A slice, a description of a range of an array axis. | 
| StrideShape | An array shape of n dimensions in c-order, f-order or custom strides. | 
| ViewRepr | Array view’s representation. | 
| WholeChunks | Whole chunks producer and iterable. | 
| WholeChunksIter | Whole chunks iterator. | 
| WholeChunksIterMut | Whole chunks iterator. | 
| WholeChunksMut | Whole chunks producer and iterable. | 
| Zip | Lock step function application across several arrays or other producers. | 
Enums
| ErrorKind | Error code for an error related to array shape or layout. | 
| FoldWhile | Value controlling the execution of  | 
Constants
| S | Slice value for the full range of an axis. | 
Traits
| AsArray | Argument conversion into an array view | 
| Data | Array representation trait. | 
| DataClone | Array representation trait. | 
| DataMut | Array representation trait. | 
| DataOwned | Array representation trait. | 
| DataShared | Array representation trait. | 
| Dimension | Array shape and index trait. | 
| FixedInitializer | Fixed-size array used for array initialization | 
| IntoDimension | Convert a value into a dimension. | 
| IntoNdProducer | Argument conversion into a producer. | 
| LinalgScalar | Elements that support linear algebra operations. | 
| NdFloat | Floating-point element types  | 
| NdIndex | Tuple or fixed size arrays that can be used to index an array. | 
| NdProducer | A producer of an n-dimensional set of elements; for example an array view, mutable array view or an iterator that yields chunks. | 
| RemoveAxis | Array shape with a next smaller dimension. | 
| ScalarOperand | Elements that can be used as direct operands in arithmetic with arrays. | 
| ShapeBuilder | A trait for  | 
Functions
| Dim | Create a new dimension value. | 
| Ix0 | Create a zero-dimensional index | 
| Ix1 | Create a one-dimensional index | 
| Ix2 | Create a two-dimensional index | 
| Ix3 | Create a three-dimensional index | 
| Ix4 | Create a four-dimensional index | 
| Ix5 | Create a five-dimensional index | 
| Ix6 | Create a six-dimensional index | 
| arr0 | Create a zero-dimensional array with the element  | 
| arr1 | Create a one-dimensional array with elements from  | 
| arr2 | Create a two-dimensional array with elements from  | 
| arr3 | Create a three-dimensional array with elements from  | 
| aview0 | Create a zero-dimensional array view borrowing  | 
| aview1 | Create a one-dimensional array view with elements borrowing  | 
| aview2 | Create a two-dimensional array view with elements borrowing  | 
| aview_mut1 | Create a one-dimensional read-write array view with elements borrowing  | 
| indices | Create an iterator over the array shape  | 
| indices_of | Create an iterator over the indices of the passed-in array. | 
| rcarr1 | Create a one-dimensional array with elements from  | 
| rcarr2 | Create a two-dimensional array with elements from  | 
| rcarr3 | Create a three-dimensional array with elements from  | 
| stack | Stack arrays along the given axis. | 
Type Definitions
| Array | An array that owns its data uniquely. | 
| Array0 | zero-dimensional array | 
| Array1 | one-dimensional array | 
| Array2 | two-dimensional array | 
| Array3 | three-dimensional array | 
| Array4 | four-dimensional array | 
| Array5 | five-dimensional array | 
| Array6 | six-dimensional array | 
| ArrayD | dynamic-dimensional array | 
| ArrayView | A lightweight array view. | 
| ArrayView0 | zero-dimensional array view | 
| ArrayView1 | one-dimensional array view | 
| ArrayView2 | two-dimensional array view | 
| ArrayView3 | three-dimensional array view | 
| ArrayView4 | four-dimensional array view | 
| ArrayView5 | five-dimensional array view | 
| ArrayView6 | six-dimensional array view | 
| ArrayViewD | dynamic-dimensional array view | 
| ArrayViewMut | A lightweight read-write array view. | 
| ArrayViewMut0 | zero-dimensional read-write array view | 
| ArrayViewMut1 | one-dimensional read-write array view | 
| ArrayViewMut2 | two-dimensional read-write array view | 
| ArrayViewMut3 | three-dimensional read-write array view | 
| ArrayViewMut4 | four-dimensional read-write array view | 
| ArrayViewMut5 | five-dimensional read-write array view | 
| ArrayViewMut6 | six-dimensional read-write array view | 
| ArrayViewMutD | dynamic-dimensional read-write array view | 
| Ix | Array index type | 
| Ix0 | zero-dimensionial | 
| Ix1 | one-dimensional | 
| Ix2 | two-dimensional | 
| Ix3 | three-dimensional | 
| Ix4 | four-dimensional | 
| Ix5 | five-dimensional | 
| Ix6 | six-dimensional | 
| IxDyn | dynamic-dimensional | 
| Ixs | Array index type (signed) | 
| RcArray | An array where the data has shared ownership and is copy on write. It can act as both an owner as the data as well as a shared reference (view like). | 
| RcArray1 | one-dimensional shared ownership array | 
| RcArray2 | two-dimensional shared ownership array |