我有一个大矩阵(70000x784),我想计算它的协方差矩阵(70000x700000)。我试过用numpy.cov公司(),但我得到了一个内存错误,因为观察太多(是的,我正在62位计算机上运行一个62位版本的Python)。你知道吗
我试图使用嵌套for循环计算协方差矩阵(这非常慢),但我知道这是不正确的,因为得到的协方差矩阵是不对称的(X[I,j]!=X[j,i])。你知道吗
当然,必须有一个更容易和更快的方法来做到这一点?你知道吗
以下是我的尝试,其中尺寸为70000x784的输入矩阵是X_缩放的:
Xt = np.transpose(X_scaled)
aveRows = np.mean(Xt,axis=0)
for i, val in enumerate(X[:,0]):
for j, val in enumerate(X[:,0]):
cov_matrix[i,j] = np.mean((X_scaled[i,:]-aveRows[i])*(X_scaled[j,:]-aveRows[j]),axis=0)
#increase cov_matrix by one row and one column:
cov_matrix = np.lib.pad(cov_matrix, ((0,1),(0,1)), 'constant', constant_values=(0))
print(cov_matrix.shape)
目前没有回答
相关问题 更多 >
编程相关推荐