矩阵乘法与Numpy

mrc*_*gnv 5 python numpy matrix-multiplication

假设我有一个亲和矩阵A和一个对角矩阵D.如何用nympy计算Python中的拉普拉斯矩阵?

L = D ^( - 1/2)AD ^(1/2)

目前,我使用L = D**( - 1/2)*A*D**(1/2).这是正确的方法吗?

谢谢.

Eri*_*got 3

Numpy 允许您直接用正元素和正指数对对角“矩阵”求幂:

\n
m = diag(range(1, 11))\nprint m**0.5\n
Run Code Online (Sandbox Code Playgroud)\n

在本例中,结果正是您所期望的,因为 NumPy 实际上将求幂分别应用于 NumPy 数组的每个元素。

\n

然而,它确实不允许您直接对任何 NumPy 矩阵求幂:

\n
m = matrix([[1, 1], [1, 2]])\nprint m**0.5\n
Run Code Online (Sandbox Code Playgroud)\n

产生您观察到的 TypeError (例外情况是指数必须是整数\xe2\x80\x93,即使对于可以用正系数对角化的矩阵也是如此)。

\n

因此,只要你的矩阵 D 是对角矩阵并且你的指数是正数,你就应该能够直接使用你的公式。

\n