使用另一列Python中的随机绘制的索引创建采样分布

问题描述

我正在尝试解决这个问题

为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))

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...