问题描述
我正在尝试解决这个问题
为30个观测均值估算器创建一个采样分布 C的平均值。为此,随机抽取1000组30个观察值 从C,使用D中随机绘制的索引(第一行是第一行 30个随机绘制的索引,第二行是第二个30 随机绘制的索引等)。对于每个随机抽取,计算平均值。 然后绘制分布的直方图。比较分布 到np.mean(C)。
C在哪里
array([23,23,...,68,34,42])
C的大小为100030
,D列的大小为30000
)
array([[23989,10991,81533,75050,13817,47678],[54864,54830,89396,22709,14556,62298],[ 2936,28729,4404,21431,81187,49178],[30737,12974,41031,43003,61132,33385],[64713,53207,49529,72596,76406,15207],[29503,71648,27210,31298,47102,13024]])
我正在尝试了解这里的问题以及解决方法。到目前为止,我所做的是用零初始化一个列表,并尝试根据D中的索引获取均值。但是我不确定这是否是实际要求的?有帮助吗?
samp = np.zeros( (1000,1))
for i in np.arrange(0,1000):
samp(i) = np.mean(C( D(i,)))
而且,这是从C中抽取随机样本,但不确定如何向其添加D索引吗?
means_size_30 = []
for x in range(1000):
mean = np.random.choice(C,size = 30).mean()
means_size_30.append(mean)
means_size_30 = np.array(means_size_30)
plt.hist(means_size_30);
解决方法
您可以使用D中提供的索引直接访问C的值。 如果使用2维数组D访问1维数组C的值,则所得数组将具有与D:2维相同的形状。它将有1000行,每行有30个来自C的样本。
下一步,您只需计算每行的平均值(设置轴= 1):
means_size_30 = C[D].mean(axis=1)
plt.hist(means_size_30)
plt.axvline(np.mean(C))