Crate ndarray[−][src]
The ndarray
crate provides an ndimensional container for general elements
and for numerics.
In ndimensional we include for example 1dimensional rows or columns, 2dimensional matrices, and higher dimensional arrays. If the array has n dimensions, then an element in the array is accessed by using that many indices. Each dimension is also called an axis.
ArrayBase
: The ndimensional 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 ndimensional 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::from
andArrayViewMut::from
. Zip
for lock step function application across two or more arrays or other item producers (NdProducer
trait).
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()
,Zip
andazip!()
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.
 See also the
ndarrayparallel
crate for integration with rayon.
 Requires Rust 1.27
Crate Feature Flags
The following crate feature flags are available. They are configured in your
Cargo.toml
.
rustcserialize
 Optional, compatible with Rust stable
 Enables serialization support for rustcserialize 0.3
serde1
 Optional, compatible with Rust stable
 Enables serialization support for serde 1.0
blas
 Optional and experimental, compatible with Rust stable
 Enable transparent BLAS support for matrix multiplication.
Uses
blassrc
for pluggable backend, which needs to be configured separately.
Documentation

The docs for
ArrayBase
provide an overview of the ndimensional array type. Other good pages to look at are the documentation for thes![]
andazip!()
macros. 
If you have experience with NumPy, you may also be interested in
ndarray_for_numpy_users
.
Reexports
pub use self::OwnedArcRepr as OwnedRcRepr; 
Modules
doc 
Standalone documentation pages. 
iter 
Producers, iterables and iterators. 
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 ndimensional array. 
Axis 
An axis index. 
AxisDescription 
Description of the axis, its length and its stride. 
Dim 
Dimension description. 
IxDynImpl 
Dynamic dimension or index type. 
OwnedArcRepr 
ArcArray's representation. 
OwnedRepr 
Array's representation. 
Shape 
A contiguous array shape of n dimensions. 
ShapeError 
An error related to array shape or layout. 
Slice 
A slice (range with step size). 
SliceInfo 
Represents all of the necessary information to perform a slice. 
StrideShape 
An array shape of n dimensions in corder, forder or custom strides. 
ViewRepr 
Array view’s representation. 
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 
SliceOrIndex 
A slice (range with step) or an index. 
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 
Fixedsize array used for array initialization 
IndexLonger 
Extra indexing methods for array views 
IntoDimension 
Argument conversion a dimension. 
IntoNdProducer 
Argument conversion into a producer. 
LinalgScalar 
Elements that support linear algebra operations. 
NdFloat 
Floatingpoint element types 
NdIndex 
Tuple or fixed size arrays that can be used to index an array. 
NdProducer 
A producer of an ndimensional 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 zerodimensional index 
Ix1 
Create a onedimensional index 
Ix2 
Create a twodimensional index 
Ix3 
Create a threedimensional index 
Ix4 
Create a fourdimensional index 
Ix5 
Create a fivedimensional index 
Ix6 
Create a sixdimensional index 
IxDyn 
Create a dynamicdimensional index 
arr0 
Create a zerodimensional array with the element 
arr1 
Create a onedimensional array with elements from 
arr2 
Create a twodimensional array with elements from 
arr3 
Create a threedimensional array with elements from 
aview0 
Create a zerodimensional array view borrowing 
aview1 
Create a onedimensional array view with elements borrowing 
aview2 
Create a twodimensional array view with elements borrowing 
aview_mut1 
Create a onedimensional readwrite array view with elements borrowing 
aview_mut2 
Create a twodimensional readwrite array view with elements borrowing 
indices 
Create an iterable of the array shape 
indices_of 
Return an iterable of the indices of the passedin array. 
rcarr1 
Create a onedimensional array with elements from 
rcarr2 
Create a twodimensional array with elements from 
rcarr3 
Create a threedimensional array with elements from 
stack 
Stack arrays along the given axis. 
Type Definitions
ArcArray 
An array where the data has shared ownership and is copy on write. 
Array 
An array that owns its data uniquely. 
Array0 
zerodimensional array 
Array1 
onedimensional array 
Array2 
twodimensional array 
Array3 
threedimensional array 
Array4 
fourdimensional array 
Array5 
fivedimensional array 
Array6 
sixdimensional array 
ArrayD 
dynamicdimensional array 
ArrayView 
A readonly array view. 
ArrayView0 
zerodimensional array view 
ArrayView1 
onedimensional array view 
ArrayView2 
twodimensional array view 
ArrayView3 
threedimensional array view 
ArrayView4 
fourdimensional array view 
ArrayView5 
fivedimensional array view 
ArrayView6 
sixdimensional array view 
ArrayViewD 
dynamicdimensional array view 
ArrayViewMut 
A readwrite array view. 
ArrayViewMut0 
zerodimensional readwrite array view 
ArrayViewMut1 
onedimensional readwrite array view 
ArrayViewMut2 
twodimensional readwrite array view 
ArrayViewMut3 
threedimensional readwrite array view 
ArrayViewMut4 
fourdimensional readwrite array view 
ArrayViewMut5 
fivedimensional readwrite array view 
ArrayViewMut6 
sixdimensional readwrite array view 
ArrayViewMutD 
dynamicdimensional readwrite array view 
Ix 
Array index type 
Ix0 
zerodimensionial 
Ix1 
onedimensional 
Ix2 
twodimensional 
Ix3 
threedimensional 
Ix4 
fourdimensional 
Ix5 
fivedimensional 
Ix6 
sixdimensional 
IxDyn 
dynamicdimensional 
Ixs 
Array index type (signed) 
RcArray 
An array where the data has shared ownership and is copy on write. 
RcArray1 
onedimensional shared ownership array 
RcArray2 
twodimensional shared ownership array 