【问题标题】:How to calculate -1/2 power of the matrix in python如何在python中计算矩阵的-1/2幂
【发布时间】:2019-12-10 06:28:17
【问题描述】:
我想在 python 中计算度数矩阵的 -1/2 次方。我知道在networkx 中有一个很棒的包可以计算归一化图拉普拉斯算子(L_norm = I - D^{-1/2}AD^{-1/2},A 是邻接矩阵)。但我只需要 D^{-1/2}。
我试过numpy.linalg.matrix_power,但它只支持整数。
raise TypeError("指数必须是整数")
TypeError: exponent must be an integer
有什么方法可以计算矩阵的 -1/2 次方吗?
【问题讨论】:
标签:
python
python-3.x
numpy
matrix
【解决方案1】:
您可以使用 scipy.linalg.fractional_matrix_power 获取矩阵的分数幂。
Example from Docs
>>> from scipy.linalg import fractional_matrix_power
>>> a = np.array([[1.0, 3.0], [1.0, 4.0]])
# fractional power of a matrix
>>> b = fractional_matrix_power(a, 0.5)
>>> b
array([[ 0.75592895, 1.13389342],
[ 0.37796447, 1.88982237]])
>>> np.dot(b, b) # Verify square root
array([[ 1., 3.],
[ 1., 4.]])