2017-09-01 86 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))