gpt4 book ai didi

python - 生成具有精确均值和标准差的样本数据

转载 作者:行者123 更新时间:2023-11-28 22:17:17 26 4
gpt4 key购买 nike

我想创建一个具有特定均值和标准差的数据集。

使用 np.random.normal() 给我一个近似值。但是,对于我想要测试的内容,我需要一个精确的均值和标准差。

我尝试过结合使用 norm.pdf 和 np.linspace,但是生成的数据集也不匹配(尽管可能只是我误用了它)。

只要我可以设置特定的样本大小、均值和标准差,数据集是否随机并不重要。

帮助将不胜感激

最佳答案

最简单的方法是生成一些具有所需标准偏差的零均值样本。然后从样本中减去样本均值,使其真正为零均值。然后缩放样本,使标准偏差准确无误,然后添加所需的平均值。

下面是一些示例代码:

import numpy as np

num_samples = 1000
desired_mean = 50.0
desired_std_dev = 10.0

samples = np.random.normal(loc=0.0, scale=desired_std_dev, size=num_samples)

actual_mean = np.mean(samples)
actual_std = np.std(samples)
print("Initial samples stats : mean = {:.4f} stdv = {:.4f}".format(actual_mean, actual_std))

zero_mean_samples = samples - (actual_mean)

zero_mean_mean = np.mean(zero_mean_samples)
zero_mean_std = np.std(zero_mean_samples)
print("True zero samples stats : mean = {:.4f} stdv = {:.4f}".format(zero_mean_mean, zero_mean_std))

scaled_samples = zero_mean_samples * (desired_std_dev/zero_mean_std)
scaled_mean = np.mean(scaled_samples)
scaled_std = np.std(scaled_samples)
print("Scaled samples stats : mean = {:.4f} stdv = {:.4f}".format(scaled_mean, scaled_std))

final_samples = scaled_samples + desired_mean
final_mean = np.mean(final_samples)
final_std = np.std(final_samples)
print("Final samples stats : mean = {:.4f} stdv = {:.4f}".format(final_mean, final_std))

产生类似这样的输出:

Initial samples stats   : mean = 0.2946 stdv = 10.1609
True zero samples stats : mean = 0.0000 stdv = 10.1609
Scaled samples stats : mean = 0.0000 stdv = 10.0000
Final samples stats : mean = 50.0000 stdv = 10.0000

关于python - 生成具有精确均值和标准差的样本数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51515423/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com