Function numpy::dot

source · []
pub fn dot<'py, T, DIN1, DIN2, OUT>(
    array1: &'py PyArray<T, DIN1>,
    array2: &'py PyArray<T, DIN2>
) -> PyResult<OUT>where
    T: Element,
    DIN1: Dimension,
    DIN2: Dimension,
    OUT: ArrayOrScalar<'py, T>,
Expand description

Return the dot product of two arrays.

NumPy’s documentation has the details.

Examples

Note that this function can either return an array…

use pyo3::Python;
use ndarray::array;
use numpy::{dot, pyarray, PyArray2};

Python::with_gil(|py| {
    let matrix = pyarray![py, [1, 0], [0, 1]];
    let another_matrix = pyarray![py, [4, 1], [2, 2]];

    let result: &PyArray2<_> = numpy::dot(matrix, another_matrix).unwrap();

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

…or a scalar depending on its arguments.

use pyo3::Python;
use numpy::{dot, pyarray, PyArray0};

Python::with_gil(|py| {
    let vector = pyarray![py, 1.0, 2.0, 3.0];
    let result: f64 = dot(vector, vector).unwrap();
    assert_eq!(result, 14.0);
});