Я переводил код Matlab (написанный кем-то еще) в Python.Понимание numpy.random.lognormal
В одном из разделов кода 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)
Вы имеете в виду: это логарифмически нормальное распределение, эквивалентное нормальному распределению, где каждый элемент использовался в e^x? –
@ChuckLoganLim вы можете перефразировать это? не уверен, что вы подразумеваете под «был использован в e^x». – dbliss
Err. У вас нормальное распределение, не так ли? Вы получаете все значения y в этом графе, используйте его в выражении e^y, тогда результирующее значение для всех y будет формировать ваш новый «дистрибутив». –