numpy中的对称矩阵?

时间:2011-01-31 21:06:10

标签: python matrix numpy symmetric

HI,

我希望在python中启动对称矩阵并用零填充它。

目前,我已经启动了一系列已知尺寸,但这不适合随后输入R作为距离矩阵。

numpy中是否有任何'简单'方法来创建对称矩阵?

谢谢, d。

修改

我应该澄清 - 创建'对称'矩阵很好。但是我感兴趣的只是生成下三角形,即。,

ar = numpy.zeros((3, 3))

array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

我想:

array([[ 0],
       [ 0, 0 ],
       [ 0.,  0.,  0.]])

这可能吗?

1 个答案:

答案 0 :(得分:3)

我认为尝试使用这种三角形阵列是不可行的。

所以这里是例如(平方)成对欧几里德距离的直接实现:

def pdista(X):
    """Squared pairwise distances between all columns of X."""
    B= np.dot(X.T, X)
    q= np.diag(B)[:, None]
    return q+ q.T- 2* B

对于性能方面而言,它很难被击败(在Python级别)。不使用这种方法的主要优势是什么?