Crate ndarray [] [src]

The ndarray crate provides an N-dimensional container similar to numpy’s ndarray.

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 (RcArray), 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 using ArrayView::from and ArrayViewMut::from.

Crate Status

  • Still iterating on and evolving the API
    • The crate is continuously developing, and breaking changes are expected during evolution from version to version. We adhere to semver, but alpha releases break at will.
    • We adopt the newest stable rust features we need. In place methods like iadd will be deprecated when Rust supports += and similar in Rust 1.8.
    • We try to introduce more static checking gradually.
  • 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

The following crate feature flags are available. The are configured in your Cargo.toml.

  • assign_ops
    • Requires Rust 1.8, will be default soon.
    • Enables the compound assignment operators
  • rustc-serialize
    • Optional, stable
    • Enables serialization support
  • rblas
    • Optional, stable
    • Enables rblas integration

Macros

s!

Slice argument constructor.

stack!

Stack arrays along the given axis.

Structs

ArrayBase

An N-dimensional 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.

Elements

An iterator over the elements of an array.

ElementsMut

An iterator over the elements of an array (mutable).

Indexed

An iterator over the indexes and elements of an array.

IndexedMut

An iterator over the indexes and elements of an array (mutable).

Indexes

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).

OuterIter

An iterator that traverses over the outermost dimension and yields each subview.

OuterIterMut

An iterator that traverses over the outermost dimension and yields each subview (mutable).

ShapeError

An error related to array shape or layout.

Si

A slice, a description of a range of an array axis.

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

LinalgScalar

Elements that support linear algebra operations.

NdFloat

Floating-point element types f32 and f64.

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.

Functions

arr0

Create a zero-dimensional array with the element x.

arr1

Create a one-dimensional array with elements from xs.

arr2

Create a two-dimensional array with elements from xs.

arr3

Create a three-dimensional array with elements from xs.

aview0

Create a zero-dimensional array view borrowing x.

aview1

Create a one-dimensional array view with elements borrowing xs.

aview2

Create a two-dimensional array view with elements borrowing xs.

aview_mut1

Create a one-dimensional read-write array view with elements borrowing xs.

rcarr1

Create a one-dimensional array with elements from xs.

rcarr2

Create a two-dimensional array with elements from xs.

rcarr3

Create a three-dimensional array with elements from xs.

stack

Stack arrays along the given axis.

zeros [Deprecated]

Deprecated: Use ArrayBase::zeros instead.

Type Definitions

Array [Deprecated]

Deprecated: Use RcArray instead

ArrayView

A lightweight array view.

ArrayViewMut

A lightweight read-write array view.

Ix

Array index type

Ixs

Array index type (signed)

OwnedArray

Array where the data is owned uniquely.

RcArray

Array where the data is reference counted and copy on write, it can act as both an owner as the data as well as a lightweight view.