python - 在 SciPy (Python) 中从拟合 PDF 生成随机样本
问题描述
给定使用 scipy.stats 的数据集的拟合分布,类似于:
data = fetch_data(file)
x = np.linspace(0, 100, 1000)
param = scipy.stats.norm.fit(data)
fit_pdf = scipy.stats.norm.pdf(x, param[0], param[1])
从该拟合数据中生成 N=1000 个随机样本的最佳方法是什么?是否可以在给定 PDF 中的任何值数组的情况下生成随机样本?
解决方案
生成随机样本的最佳方法是:
data = fetch_data(file)
x = np.linspace(0, 100, 1000)
param = scipy.stats.norm.fit(data)
random_samples = scipy.stats.norm.rvs(param[0], param[1], size=1000)
要使用给定的 pdf 作为数组生成随机样本,您可以使用以下命令:
fit_pdf = scipy.stats.norm.pdf(x, param[0], param[1])
samples = np.random.choice(x, size=1000, p=fit_pdf/np.sum(fit_pdf))
推荐阅读
- c# - ElasticSearch - Nest - 创建模板
- unit-testing - 单元测试时如何在nestjs中为服务提供注入常量
- azure - 使用 ASP.NET Core 2.0 中的新配置访问 Azure 云存储
- authentication - 如何为新用户帐户创建临时链接?
- matlab - fprintf:某个点后的新行
- angularjs - 获取在angularjs上动态变化的数据
- jquery - 对外键模型的 Ajax 调用上的 Django 方法不允许状态 405
- android - 任务“:app:processArm64DebugResources”执行失败。> 执行 aapt 失败
- php - 我需要在 Symfony 框架中关闭显示错误
- vue.js - How to loop thru 3 arrays using only one v-for?