2024-05-16 11:51:29 发布
网友
我想创建一个具有特定平均值和标准偏差的数据集。在
使用np.随机.正态()给了我一个大概值。然而,对于我想要测试的东西,我需要一个准确的平均值和标准偏差。在
我试过用规范.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))
其产生的输出与此类似:
最简单的方法是用期望的标准差生成一些零均值样本。然后从样本中减去样本平均值,这样它才是真正的零均值。然后对样本进行缩放,使标准偏差精确,然后添加所需的平均值。在
下面是一些示例代码:
其产生的输出与此类似:
^{pr2}$相关问题 更多 >
编程相关推荐