【发布时间】:2018-11-15 13:18:01
【问题描述】:
我目前正在编写一段代码,用于计算一组患者样本的非参数引导。我已经编写了该块,因此仅当我拒绝峰度测试的空值时才调用它(因为在此阶段考虑更密集的探索方法是不可行的)。这是当前代码块的构造(作为一个侧面,我不认为我可以提供我的实际数据)出于实际原因并且我不拥有它,所以我会尽量具体)
#create the list of subject ids
SUB_IDS=['values']
# this is a pandas data frame of all subjects' information. Columns are:
#Sub_ID, NG,C,ER
asbs=pd.DataFrame(['Values'])
for x in SUB_IDS:
x_data=asbs[asbs['SUB_ID']==x]
x_ng=x_data['NG']
x_c=x_data['C']
x_er=x_data['ER']
a,b = sp.stats.kurtosistest(x_NG)
c,d = sp.stats.kurtosistest(x_C)
e,f = sp.stats.kurtosistest(x_ER)
kurtosis_scores.append([x,a,b,c,d,e,f])
# for somplicity we'll only focus on bootstrapping one feature variable
if b <=.05:
mean=x_ng.mean()
else:
sampled_means=[]
for x in range(1,10000):
g=np.random.choice(x_NG,size=len(x_NG),replace=True)
print(g)
g=np.mean(g)
sampled_means.append(g)
我的代码运行平稳,直到最后一个块——当我想取采样平均值的平均值并将值附加到具有主题 id 的列表中(以及在我计算这些值之后的引导值的其他方法时——我离开了这有点为了可读性)。每次我在 sampled_means 上使用 np.mean 函数时,我都会得到 0(这是有道理的,python 在迭代之前对其进行评估)。
在我通过 for 循环更新值并将统计信息传递给数组后,“冻结”数组的最佳方法是什么?谢谢!
【问题讨论】:
-
我很难理解你的问题。您不能在
sampled_means外部和for循环之后应用np.mean吗? -
嘿!谢谢回复!我尝试过类似的方法,但是 - 我不需要创建一个 if 循环告诉 python 返回 sampled_means 的平均值还是等待 b 的值的平均值?这是处理大量样本的最佳方法吗?
标签: arrays python-3.x pandas numpy iteration