mir*_*ari 15 python numpy scipy
我想提出一个二维的numpy array,让我们称它为A一些数字的力量n,但我迄今为止未能找到函数或运算符来做到这一点.
我知道我可以将它转换为matrix类型并使用当时的事实(类似于Matlab中的行为),A**n正是我想要的,(对于array相同的表达式意味着元素取幂).matrix然而,向后和向后投射似乎是一个相当丑陋的工作方式.
当然,必须有一个很好的方法来执行该计算,同时保持格式array?
Joe*_*ton 24
我相信你想要的 numpy.linalg.matrix_power
作为一个简单的例子:
import numpy as np
x = np.arange(9).reshape(3,3)
y = np.matrix(x)
a = y**3
b = np.linalg.matrix_power(x, 3)
print a
print b
assert np.all(a==b)
Run Code Online (Sandbox Code Playgroud)
这会产生:
In [19]: a
Out[19]:
matrix([[ 180, 234, 288],
[ 558, 720, 882],
[ 936, 1206, 1476]])
In [20]: b
Out[20]:
array([[ 180, 234, 288],
[ 558, 720, 882],
[ 936, 1206, 1476]])
Run Code Online (Sandbox Code Playgroud)