问题描述
我正在使用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
有点令人困惑是可接受的分布。听起来您真正想要的是截断的对数正态分布。