2つのベクトルがあり、それぞれが相関行列の半分に対応しています。いう、
a = [0.1 0.2 0.3 0.4 0.5 0.6]
b = [0.11 0.22 0.33 0.44 0.55 0.66]
私がやりたいのは、次のようなマトリックスにそれらを組み立てることです。
correlation_matrix = [1 0.1 0.2 0.3
0.11 1 0.4 0.5 <-- a
b --> 0.22 0.44 1 0.6
0.33 0.55 0.66 1]
Pythonでそれを行う関数はありますか?
これは、を使用してそれを行う1つの方法numpy
です。
import numpy as np
a = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6])
b = np.array([0.11, 0.22, 0.33, 0.44, 0.55, 0.66])
最初に、最終的な相関行列に期待するサイズを設定し、単位行列を作成します。
n = 4
results = np.identity(n)
上三角インデックスを取得し、の値を割り当てますa
。行と列のインデックスを切り替えて、次の値を割り当てますb
。
rows, cols = np.triu_indices(n, 1) # The 1 denotes offset from diagonal
results[rows, cols] = a
results[cols, rows] = b
結果:
array([[1. , 0.1 , 0.2 , 0.3 ],
[0.11, 1. , 0.4 , 0.5 ],
[0.22, 0.44, 1. , 0.6 ],
[0.33, 0.55, 0.66, 1. ]])
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加