scipy.sparse.linalg.
matrix_power#
- scipy.sparse.linalg.matrix_power(A, power)[source]#
Raise a square matrix to the integer power, power.
For non-negative integers,
A**power
is computed using repeated matrix multiplications. Negative integers are not supported.- Parameters:
- A(M, M) square sparse array or matrix
sparse array that will be raised to power power
- powerint
Exponent used to raise sparse array A
- Returns:
- A**power(M, M) sparse array or matrix
The output matrix will be the same shape as A, and will preserve the class of A, but the format of the output may be changed.
Notes
This uses a recursive implementation of the matrix power. For computing the matrix power using a reasonably large power, this may be less efficient than computing the product directly, using A @ A @ … @ A. This is contingent upon the number of nonzero entries in the matrix.
Added in version 1.12.0.
Examples
>>> from scipy import sparse >>> A = sparse.csc_array([[0,1,0],[1,0,1],[0,1,0]]) >>> A.todense() array([[0, 1, 0], [1, 0, 1], [0, 1, 0]]) >>> (A @ A).todense() array([[1, 0, 1], [0, 2, 0], [1, 0, 1]]) >>> A2 = sparse.linalg.matrix_power(A, 2) >>> A2.todense() array([[1, 0, 1], [0, 2, 0], [1, 0, 1]]) >>> A4 = sparse.linalg.matrix_power(A, 4) >>> A4.todense() array([[2, 0, 2], [0, 4, 0], [2, 0, 2]])