首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用mean、min、max和stddev创建2D数据集

使用mean、min、max和stddev创建2D数据集
EN

Stack Overflow用户
提问于 2021-11-11 16:55:35
回答 1查看 37关注 0票数 0

我正在尝试创建一个二维数组,它具有特定的min、max、mean和stddev。长话短说,我正在尝试使用这两种方法

代码语言:javascript
运行
复制
np.random.randint(min,max, size=(row,col)
np.random.normal(mu,sigma, size=(row,col) 

在同一时间。有没有人知道是否已经为此创建了一个函数?我有一个标准差匹配函数,但它也改变了数组的最小和最大值,不幸的是,这也可能是另一种方法。

EN

回答 1

Stack Overflow用户

发布于 2021-11-12 21:22:05

您可以使用均匀分布,将边界从法线转换为均匀空间(使用error function),并使用反向误差函数将其转换为正态分布。

代码语言:javascript
运行
复制
import matplotlib.pyplot as plt
import numpy as np
from scipy import special

mean = 2
std = 3
min_value = 0
max_value = 6

min_in_standard_domain = (min_value - mean) / std  
max_in_standard_domain = (max_value - mean) / std

min_in_erf_domain = special.erf(min_in_standard_domain)
max_in_erf_domain = special.erf(max_in_standard_domain)

random_uniform_data = np.random.uniform(min_in_erf_domain, max_in_erf_domain, 10000)
random_gaussianized_data = (special.erfinv(random_uniform_data) * std) + mean
fig, axes = plt.subplots(1, 2, figsize=(12, 6))
axes[0].hist(random_uniform_data, 30)
axes[1].hist(random_gaussianized_data, 30)
axes[0].set_title('uniform distribution samples')
axes[1].set_title('erfinv(uniform distribution samples)')
plt.show()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69932063

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档