Python 所有列的2列之间的相关性

Python 所有列的2列之间的相关性,python,correlation,Python,Correlation,我有两个数组,每个数组有n列,因此两个数组的形状结构相同。 我遇到的问题是,我无法为所有列计算两列之间的相关性。我需要一个W1[:,0]和W2[:,0]的关联,另一个例子是W1[:,1]和W2[:,1]等等,直到最后一列。如何才能做到这一点 steps_per_year = 12 n_years = 1 n_scenarios = 5 n_steps = steps_per_year * n_years W1 = np.random.normal(size = (n_steps, n_scen

我有两个数组,每个数组有n列,因此两个数组的形状结构相同。 我遇到的问题是,我无法为所有列计算两列之间的相关性。我需要一个
W1[:,0]和W2[:,0]
的关联,另一个例子是
W1[:,1]和W2[:,1]
等等,直到最后一列。如何才能做到这一点

steps_per_year = 12
n_years = 1
n_scenarios = 5
n_steps = steps_per_year * n_years

W1 = np.random.normal(size = (n_steps, n_scenarios))
W2 = np.random.normal(size = (n_steps, n_scenarios))

相关性只是标准化的标量积,因此可以执行以下操作:

W1_copy = np.copy(W1)
W2_copy = np.copy(W2)
W1_copy -= np.mean(W1_copy, axis=0)
W1_copy /= np.linalg.norm(W1_copy, axis=0)
W2_copy -= np.mean(W2_copy, axis=0)
W2_copy /= np.linalg.norm(W2_copy, axis=0)
correlations = np.dot(np.transpose(W1_copy), W2_copy)

如果我没有弄错的话,
相关性[I,j]
将保留
W1
第I列和
W2
第j列的相关性。谢谢您的回答!但是,如果你计算前两列的相关性,你会得到不同的结果。我不完全理解这个问题。两个矩阵的第一列的相关性将是
相关性[0,0]