**
的{{1}}运算符不支持非整数幂:
numpy.matrix
我想要的是
>>> m
matrix([[ 1. , 0. ],
[ 0.5, 0.5]])
>>> m ** 2.5
TypeError: exponent must be an integer
我可以使用octave:14> [1 0; .5 .5] ^ 2.5
ans =
1.00000 0.00000
0.82322 0.17678
或numpy
执行此操作吗?
这不是按元素操作的。正如this post所述,这是一个提升到某种幂的矩阵(在线性代数中)。
答案 0 :(得分:11)
您可以使用Apple Documentation:
>>> m
matrix([[ 1. , 0. ],
[ 0.5, 0.5]])
>>> scipy.linalg.fractional_matrix_power(m, 2.5)
array([[ 1. , 0. ],
[ 0.8232233, 0.1767767]])
答案 1 :(得分:8)
从这个question可以看出,矩阵的强大功能可以改写为:。
此代码使用scipy.linalg,结果与Octave相同:
import numpy as np
from scipy.linalg import logm, expm
M = np.matrix([[ 1. , 0. ],[ 0.5, 0.5]])
x = 2.5
A = logm(M)*x
P = expm(A)
这是P:
的输出Out[19]:
array([[ 1. , -0. ],
[ 0.8232233, 0.1767767]])