1

こんにちは、

Pythonで対称行列を開始し、ゼロを入力したいと思います。

現時点では、既知の次元の配列を開始しましたが、これは距離行列としてのRへの後続の入力には適していません。

対称行列を作成するための「単純な」メソッドはnumpyにありますか?

ありがとう。

編集

明確にする必要があります-「対称」行列の作成は問題ありません。しかし、私は下三角形を生成することにのみ興味があります。

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

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

が欲しいです:

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

これは可能ですか?

4

1 に答える 1

3

そのような三角配列で作業するのは現実的ではないと思います。

したがって、たとえば、(2乗)ペアワイズユークリッド距離の簡単な実装を次に示します。

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レベルで)それを打ち負かすのは難しいです。このアプローチを使用しないことの主な利点は何でしょうか?

于 2011-01-31T22:05:57.837 に答える