python - 从拟合分布中抽取

标签 python numpy scipy

我提到了Fitting empirical distribution to theoretical ones with Scipy (Python)?并生成了最适合我的样本数据的分布。我希望根据最佳拟合分布生成随机数。参见下图。

enter image description here

但是,在 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.random.f.html#numpy.random.f ,只有3个参数,dfnum,dfden,size=None,我应该在哪里插入locscale。顺便说一句,最佳拟合分布中的 dnd 和 dfd 是 float ,而在 numpy.random 中,它需要整数。

如果我在代码中仅使用 dnd 和 dfd df_members['bd'] = df_members.bd.apply(lambda x: np.rint((np.random.f(dfnum=1441, dfden=19) ))) if x==-999 else x ) 将会生成这样的值,这是 false。

enter image description here

最佳答案

您可以从 scipy.stats 模块生成 f 分布,并根据您已使用 f.rvs 找到的参数从中询问随机值 方法接受四个参数加上大小(您想要的绘制次数)。

from scipy.stats import f
import matplotlib.pyplot as plt

values = f.rvs(1441.41, 19.1, -0.24, 26.5, 100000)

values 是一个长度为 100000 的数组,从给定的分布中抽取。可以看到如下

plt.hist(values, bins=25)
plt.show()

enter image description here

关于python - 从拟合分布中抽取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46953084/

相关文章:

python - Python协程真的用在了项目中吗?

python - 使用 Python 如何合并两列并仅在另一列中的数据存在时覆盖一列中的数据?

python - TypeError:图片应为PIL图像或ndarray。得到了<class ‘bool’>

python - 根据索引切割numpy数组

python - 创建一个具有时间步长和多个特征的新数组,例如 LSTM

python - 如何在 python 中应用 2d 和 3d 过滤器

python - 如何为带存储桶的 seq2seq 模型设置 tfrecords 队列?

python - 根据排列数组从一组数组中选择值

python - 做多重积分时, 'takes 0 positional arguments but 1 was given'

Python scipy - 指定自定义离散分布