当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy linalg.matrix_power用法及代码示例


本文简要介绍 python 语言中 numpy.linalg.matrix_power 的用法。

用法:

linalg.matrix_power(a, n)

将方阵提高到(整数)次幂 n。

对于正整数n,幂是通过重复矩阵平方和矩阵乘法计算的。如果n == 0,返回与M形状相同的单位矩阵。如果n < 0,计算倒数,然后将其提升为abs(n).

注意

当前不支持对象矩阵堆栈。

参数

a (…, M, M) 数组

矩阵为“powered”。

n int

index 可以是任何整数或长整数、正数、负数或零。

返回

a**n (..., M, M) ndarray 或矩阵对象

返回值与 M 的形状和类型相同;如果 index 为正或零,则元素的类型与 M 的相同。如果 index 为负,则元素为浮点数。

抛出

LinAlgError

对于不是正方形的矩阵或(对于负幂)不能进行数字反转的矩阵。

例子

>>> from numpy.linalg import matrix_power
>>> i = np.array([[0, 1], [-1, 0]]) # matrix equiv. of the imaginary unit
>>> matrix_power(i, 3) # should = -i
array([[ 0, -1],
       [ 1,  0]])
>>> matrix_power(i, 0)
array([[1, 0],
       [0, 1]])
>>> matrix_power(i, -3) # should = 1/(-i) = i, but w/ f.p. elements
array([[ 0.,  1.],
       [-1.,  0.]])

更复杂的例子

>>> q = np.zeros((4, 4))
>>> q[0:2, 0:2] = -i
>>> q[2:4, 2:4] = i
>>> q # one of the three quaternion units not equal to 1
array([[ 0., -1.,  0.,  0.],
       [ 1.,  0.,  0.,  0.],
       [ 0.,  0.,  0.,  1.],
       [ 0.,  0., -1.,  0.]])
>>> matrix_power(q, 2) # = -np.eye(4)
array([[-1.,  0.,  0.,  0.],
       [ 0., -1.,  0.,  0.],
       [ 0.,  0., -1.,  0.],
       [ 0.,  0.,  0., -1.]])

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.linalg.matrix_power。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。