2017-09-01 82 views
0

我正在阵列上从150个观察和1500级的变量光谱医疗数据,存储如下变量的相关性(所有这些数据是浮子):的Python - 与式

blood = ([[sample1_var1..., sample1_var1500],[sample2_var1..., sample2_var1500]..., [sample_150_var1..., sample150_var1500]]) 

我想获得存储在150周的观察像列表中的每个变量和另一个变量之间的相关系数:

ery = ([1.524, 1.987..., 1.369]) 

我需要获得var1ery,然后var2之间的相关性的“R”系数和ery。等等有没有一个简单的方法来做到这一点(也许与一个for循环)?

+1

但如果你想得到1500个变量之间的成对相关性不会是1500x1500的值? – 9dogs

回答

0

我你的问题的理解是:

  • blood有1500个变量和150个观察
  • ery是一维数组/列表(你确实有它在你的问题中1元的元组)
  • 你想找到1500个相关(每个变量的相关性在blood到矢量ery

只使用熊猫和NumPy的:

import pandas as pd 
import numpy as np 
np.random.seed(123) 

blood = pd.DataFrame(np.random.rand(150,1500)).add_prefix('var') 
# blood.shape = (150, 1500) 
ery = pd.Series(np.random.rand(150)) 
print(blood.corrwith(ery)) 
var0  -0.12897 
var1  -0.16448 
var2  0.02315 
var3  -0.09275 
var4  -0.00337 
var5  0.00094 
var6  -0.13884 
var7  -0.04296 
var8  0.11895 
var9  0.01626 
var10  0.04122 
var11  -0.04241 

var1488 0.12936 
var1489 -0.14607 
var1490 0.14229 
var1491 0.06072 
var1492 -0.00815 
var1493 0.03401 
var1494 -0.00994 
var1495 -0.10997 
var1496 0.05980 
var1497 -0.00930 
var1498 0.05205 
var1499 -0.11258 
dtype: float64 

故障排除:它有助于指定哪些数据结构,你与你的问题的工作。你现在拥有的东西是不明确的。如果ery是一个列表,你需要blood.corrwith(pd.Series(ery))