首页 > 解决方案 > 如何在python中计算矩阵的-1/2幂

问题描述

我想在python中计算度数矩阵的-1/2幂。我知道有一个很棒的包可以计算networkx. 但我只需要 D^{-1/2}。

我试过numpy.linalg.matrix_power了,但它只支持整数。

raise TypeError("exponent must be an integer") TypeError: exponent must be an integer

有什么方法可以计算矩阵的 -1/2 幂?

标签: pythonpython-3.xnumpymatrix

解决方案


您可以将scipy.linalg.fractional_matrix_power用于矩阵的分数幂。
文档中的示例

>>> 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.]])

推荐阅读