You are viewing an older version (2.4.3). Go to latest (2.4.4)
{ } Raw JSON

bundles / numpy 2.4.3 / numpy / linalg / matmul

_ArrayFunctionDispatcher

numpy.linalg:matmul

source: /numpy/linalg/_linalg.py :3325

Signature

def   matmul ( x1 x2 / )

Summary

Computes the matrix product.

Extended Summary

This function is Array API compatible, contrary to numpy.matmul.

Parameters

x1 : array_like

The first input array.

x2 : array_like

The second input array.

Returns

out : ndarray

The matrix product of the inputs. This is a scalar only when both x1, x2 are 1-d vectors.

Raises

: ValueError

If the last dimension of x1 is not the same size as the second-to-last dimension of x2.

If a scalar value is passed in.

Examples

For 2-D arrays it is the matrix product:
a = np.array([[1, 0],
              [0, 1]])
b = np.array([[4, 1],
              [2, 2]])
np.linalg.matmul(a, b)
For 2-D mixed with 1-D, the result is the usual.
a = np.array([[1, 0],
              [0, 1]])
b = np.array([1, 2])
np.linalg.matmul(a, b)
np.linalg.matmul(b, a)
Broadcasting is conventional for stacks of arrays
a = np.arange(2 * 2 * 4).reshape((2, 2, 4))
b = np.arange(2 * 2 * 4).reshape((2, 4, 2))
np.linalg.matmul(a,b).shape
np.linalg.matmul(a, b)[0, 1, 1]
sum(a[0, 1, :] * b[0 , :, 1])
Vector, vector returns the scalar inner product, but neither argument is complex-conjugated:
np.linalg.matmul([2j, 3j], [2j, 3j])
Scalar multiplication raises an error.
np.linalg.matmul([1,2], 3)

See also

numpy.matmul

Aliases

  • numpy.linalg.matmul