我正在将 Matlab 代码(由其他人编写)翻译成 Python。
在 Matlab 代码的一部分中,将变量X_new
设置为从对数正态分布中提取的值,如下所示:
% log normal distribution
X_new = exp(normrnd(log(X_old), sigma));
也就是说,从以 为中心的正态分布中抽取一个随机值log(X_old)
,并将X_new
其设置为e
提升到该值。
这段代码直接翻译成Python如下:
import numpy as np
X_new = np.exp(np.random.normal(np.log(X_old), sigma))
但numpy
包括可以直接采样的对数正态分布。
我的问题是,后面的代码行是否等同于上面的代码行?
X_new = np.random.lognormal(np.log(X_old), sigma)