1
相関行列を計算し、期待通りに機能するこの関数を持っていますが、より効率的にループを取り除こうとしていますが、そうすることに問題があります。下記のMy機能:ループを取り除き、相関行列関数をより効率的にするにはどうすればよいですか?
def correlation(X):
N = X.shape[0] # num of rows
D = X.shape[1] # num of cols
covarianceMatrix = np.cov(X) # start with covariance matrix
# use covarianceMatrix to create size of M
M = np.zeros([covarianceMatrix.shape[0], covarianceMatrix.shape[1]])
for i in range(covarianceMatrix.shape[0]):
for j in range(covarianceMatrix.shape[1]):
corr = covarianceMatrix[i, j]/np.sqrt(np.dot(covarianceMatrix[i, i], covarianceMatrix[j, j]))
M[i,j] = corr
return M
何numpyのを使用して、この計算を実行するために、より効率的な方法だろうとないその構築されたを使用してそのようなcorrcoef(として機能)。
は、その作業を行います正しく? 2つのスカラーを持つ 'np.dot'は、少なくとも奇妙に見えます。 – MSeifert