我对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,这就是为什么我得到相同的统计数据。 知道如何在给定上述功能的情况下绕过它吗?