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()and.zip_mut_with()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.8
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 |
| 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. |
Enums
| ErrorKind |
Error code for an error related to array shape or layout. |
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. |
| 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. |
| 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) |
| OwnedArray |
[ Deprecated ] Array where the data is owned uniquely. |
| 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 |