【发布时间】:2012-12-06 01:51:33
【问题描述】:
我尝试正交化 2d-numpy array 并失败。我使用了this 方法并将其翻译成这段代码:
def sym(w):
return w.dot((w.T.dot(w))**(-.5))
但是
In [1]: a
Out[2]:
array([[ 1.1, 0.1],
[ 0.1, 1.1]])
In [3]: a = sym(a)
In [4]: a
Out[5]:
array([[ 1.20909392, 2.43574363],
[ 2.43574363, 1.20909392]])
In [6]: a.dot(a.T)
Out[7]:
array([[ 7.39475513, 5.89008563],
[ 5.89008563, 7.39475513]])
a.dot(a.T) 应该输出身份。
【问题讨论】:
-
sym函数与a.dot(a.T)行没有任何连接- 应该吗? -
你说得对,我要编辑示例!
-
我发现
**.5的行为通常很奇怪,因为让a成为一些方阵:b=a**.5然后a != b.dot(b.T)。这不是我所期望的...... -
我相信你想要scipy.linalg.sqrtm作为矩阵的平方根
-
似乎是 -.5 的幂,而不是 0.5 的幂。你知道这是否意味着它是矩阵平方根的倒数吗? (另外,您能否更新您的问题以显示新代码?)
标签: python numpy orthogonal