如何在scipy1.0中的a和b之间创建对数正态数?

问题描述

我正在使用scipy版本1.0的计算机,并且无法更新模块。我需要在a和b之间创建N个对数正态点,如何创建随机数?

对于scipy 1.4

from scipy import stats
x = stats.loguniform.rvs(1,10,size=100,random_state=100)

在scipy1.0中的操作方式

Scipy 1.0没有stats.lognormal,只有stats.lognorm具有shape参数。

也欢迎使用numpy或random模块的任何方法,而不必只使用scipy。

解决方法

发行版scipy.stats.loguniform只是scipy.stats.reciprocal的新名称,reciprocal在SciPy 1.0中可用。因此,如果您需要loguniform,则可以改用reciprocal

但是请注意,对数均匀分布与对数正态分布不相同,因此这个问题要求lognormal随机变量,但建议loguniform有点令人困惑是可接受的分布。听起来您真正想要的是截断的对数正态分布。