使用python中的统计信息为不同的样本定义一个函数



我对Python相对较新,正在寻找一些见解。

我正在尝试为给定数量的样本计算一些统计数据(平均值、方差和标准误差(。在列表中samples我有 6 个 N 个样本的实验。我正在使用numpy库进行统计,所以我知道np.mean() np.std() np.var()

我可以编写类似的东西

print("For n =", n_rep, np.mean(res), np.std(res),np.var(res))

其中n_rep是 N 个样本的数量,res = 代码前面定义的某个函数

但是为每个样本编写代码很乏味,而且我不知道如何为每个实验保存,所以我总是只得到一组实验的统计数据

我想编写这样的代码:

samples = [5, 20, 50, 100, 200, 1000] for i in samples:

输出应该是这样的print("For n =", n_rep, np.mean(res), np.std(res),np.var(res))但是我得到 6 个实验的列表

提前感谢!

您可以创建一个空列表,然后将结果追加到其中,而不是打印它。

import numpy as np 
samples = [5, 20, 50, 100, 200, 1000]
empty_list = []
for i in samples:
sample_list = [i, np.mean(i), np.std(i),np.var(i)]
empty_list.append(sample_list)
print("For n =",sample_list)

所以我所说的函数是下一个。这个想法是模拟一个专辑填充不同大小的样本,即n_rep。

def repetitions(n_rep, stickers_total, stickers_pack):
stickers_album = []
while len(stickers_album) != n_rep:
n_packs = how_many_packs(stickers_total, stickers_pack)
stickers_album.append(n_packs)
return stickers_album

n_rep 是样本的数量,所以对于第一个实验,我有 5 个度量,对于第二个 10 个,依此类推

当我运行您的代码时,我的终端如下所示:

[[5, 866.4, 80.99283918964687, 36.22109882375187], 
[20, 866.4, 80.99283918964687, 36.22109882375187], 
[50, 866.4, 80.99283918964687, 36.22109882375187], 
[100, 866.4, 80.99283918964687, 36.22109882375187], 
[200, 866.4, 80.99283918964687, 36.22109882375187], 
[1000, 866.4, 80.99283918964687, 36.22109882375187]]

我想既然我已经定义了n_rep,这就是为什么我得到相同的统计数据。 知道如何在给定上述功能的情况下绕过它吗?

最新更新