使用for循环根据测试创建值向量

时间:2019-05-24 15:09:46

标签: python for-loop

这似乎应该是一个简单的问题,但是我是python的新手,在R中,我将使用foreach循环,该循环为我提供了一个组合选项。

我尝试了一个for循环,可以让我打印出我需要的所有值,但我希望将它们收集到一个值向量中,以便以后使用。


from scipy.stats import gamma
import scipy.stats as stats
import numpy as np
import random

data2 = np.random.gamma(1,2, size = 500)

gammT =  np.log(data2 + 1)

mean = np.mean(gammT)
sd = np.std(gammT)

a = (mean/ sd)**2
b = (sd**2)/ mean

for i in range(1,100):
    gammT = random.sample(list(gammT), 500)
    gamm = np.random.gamma(a,b, size = len(gammT))
    s = stats.anderson_ksamp([gammT,gamm])
    s = s[2]
    print(s)

所以我能够打印我想要的所有值,但我希望将它们全部收集到一个值向量中。我试图追加并制作列表,但无法将它们汇总在一起。

1 个答案:

答案 0 :(得分:2)

from scipy.stats import gamma
import scipy.stats as stats
import numpy as np
import random

gammT =  np.log(data2.iScore + 1)

mean = np.mean(gammT)
sd = np.std(gammT)

a = (mean/ sd)**2
b = (sd**2)/ mean

#initialize empty list
result=[]

for i in range(100): 
# removed (1,100) you only need range(100) for 100 elements
    gammT = random.sample(list(gammT), 500)
    gamm = np.random.gamma(a,b, size = len(gammT))
    s = stats.anderson_ksamp([gammT,gamm])
    s = s[2]
    #append calculation to list
    result.append(s)
    print(s)
print(result)