尝试计算大矩阵的 PIL 逊系数(例如 300000x12000)
所以我接下来要做的是:
导入库:
import pandas as pd
from scipy.spatial.distance import cosine
from scipy.stats.stats import pearsonr
使用 pd.get_dummies 制作虚拟表:
table=pd.get_dummies(data['word'])
使用 DataFrame 创建空矩阵:
data_ibs = pd.DataFrame(index=table.columns,columns=table.columns)
然后使用 for 循环对矩阵进行 pearsonr 计算:
for i in range(0,len(data_ibs.columns)) :
for j in range(0,len(data_ibs.columns)) :
data_ibs.ix[i,j] = pearsonr(table.ix[:,i],table.ix[:,j]) [0]
它可以工作,但是waaay很慢 - 它工作了 4 个小时,但仍然在计算。还有另一种可能性吗?
提前致谢,我会欣赏您的想法!
最佳答案
你不能只使用corr
吗? ,它使用 pearson 作为默认方法:
table.corr()
例如:
np.random.seed(0)
>>> pd.DataFrame(np.random.randn(5, 5)).corr()
0 1 2 3 4
0 1.000000 0.029861 0.077225 0.905577 -0.254004
1 0.029861 1.000000 -0.548770 -0.394760 -0.868972
2 0.077225 -0.548770 1.000000 0.297952 0.819027
3 0.905577 -0.394760 0.297952 1.000000 0.129641
4 -0.254004 -0.868972 0.819027 0.129641 1.000000
关于python - 计算矩阵中的距离 Pandas Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36343456/