Expand description

This crate provides Rust interfaces for NumPy C APIs, especially for the ndarray class.

It uses pyo3 for Rust bindings to CPython, and uses ndarray as the Rust matrix library.

To resolve its dependency on NumPy, it calls import numpy.core internally. This means that this crate should work if you can use NumPy in your Python environment, e.g. after installing it by pip install numpy. It does not matter whether you use the system environment or a dedicated virtual environment.

Loading NumPy is done automatically and on demand. So if it is not installed, the functions provided by this crate will panic instead of returning a result.

Example

use numpy::pyo3::Python;
use numpy::ndarray::array;
use numpy::{ToPyArray, PyArray};

Python::with_gil(|py| {
    let py_array = array![[1i64, 2], [3, 4]].to_pyarray(py);

    assert_eq!(
        py_array.readonly().as_array(),
        array![[1i64, 2], [3, 4]]
    );
})

Re-exports

pub use ndarray;
pub use pyo3;
pub use crate::array::get_array_module;
pub use crate::array::PyArray;
pub use crate::array::PyArray0;
pub use crate::array::PyArray1;
pub use crate::array::PyArray2;
pub use crate::array::PyArray3;
pub use crate::array::PyArray4;
pub use crate::array::PyArray5;
pub use crate::array::PyArray6;
pub use crate::array::PyArrayDyn;
pub use crate::borrow::PyReadonlyArray;
pub use crate::borrow::PyReadonlyArray1;
pub use crate::borrow::PyReadonlyArray2;
pub use crate::borrow::PyReadonlyArray3;
pub use crate::borrow::PyReadonlyArray4;
pub use crate::borrow::PyReadonlyArray5;
pub use crate::borrow::PyReadonlyArray6;
pub use crate::borrow::PyReadonlyArrayDyn;
pub use crate::borrow::PyReadwriteArray;
pub use crate::borrow::PyReadwriteArray1;
pub use crate::borrow::PyReadwriteArray2;
pub use crate::borrow::PyReadwriteArray3;
pub use crate::borrow::PyReadwriteArray4;
pub use crate::borrow::PyReadwriteArray5;
pub use crate::borrow::PyReadwriteArray6;
pub use crate::borrow::PyReadwriteArrayDyn;
pub use crate::convert::IntoPyArray;
pub use crate::convert::NpyIndex;
pub use crate::convert::ToNpyDims;
pub use crate::convert::ToPyArray;
pub use crate::npyffi::PY_ARRAY_API;
pub use crate::npyffi::PY_UFUNC_API;
pub use crate::npyiter::NpyIterFlag;
Deprecated
pub use crate::npyiter::NpyMultiIter;
Deprecated
pub use crate::npyiter::NpyMultiIterBuilder;
Deprecated
pub use crate::npyiter::NpySingleIter;
Deprecated
pub use crate::npyiter::NpySingleIterBuilder;
Deprecated

Modules

Safe interface for NumPy’s N-dimensional arrays

Types to safely create references into NumPy arrays

Defines conversion traits between Rust types and NumPy data types.

Support datetimes and timedeltas

Low-Level bindings for NumPy C API.

npyiterDeprecated

Wrapper of the array iterator API.

Macros

Create an Array with one, two or three dimensions.

Return the Einstein summation convention of given tensors.

Create a PyArray with one, two or three dimensions.

Structs

Represents that given Vec cannot be treated as an array.

Represents that the given array is not contiguous.

Enums

Inidcates why borrowing an array failed.

Traits

Represents that a type can be an element of PyArray.

IterModeDeprecated

Iterator mode for single iterator

Functions

Create a one-dimensional index

Create a two-dimensional index

Create a three-dimensional index

Create a four-dimensional index

Create a five-dimensional index

Create a six-dimensional index

Create a dynamic-dimensional index

Return the dot product of two arrays.

Returns the type descriptor (“dtype”) for a registered type.

Return the Einstein summation convention of given tensors.

Return the inner product of two arrays.

Type Definitions

one-dimensional

two-dimensional

three-dimensional

four-dimensional

five-dimensional

six-dimensional

dynamic-dimensional