Я использую numpy.random.randn
и numpy.random.rand
для генерации случайных чисел. Я сбиваю с толку разницу между random.randn
и random.rand
?Генератор случайных чисел в numpy
ответ
Основное различие между ними указано в docs
. Ссылки на Doc rand и Doc randn
Для numpy.rand
, вы получите случайные значения, сгенерированные из равномерного распределения в 0 - 1
Но numpy.randn
вы получите случайные значения, полученные от нормального распределения, со средним 0 и дисперсией 1.
Просто небольшой пример.
>>> import numpy as np
>>> np.random.rand(10)
array([ 0.63067838, 0.61371053, 0.62025104, 0.42751699, 0.22862483,
0.75287427, 0.90339087, 0.06643259, 0.17352284, 0.58213108])
>>> np.random.randn(10)
array([ 0.19972981, -0.35193746, -0.62164336, 2.22596365, 0.88984545,
-0.28463902, 1.0, 1.76429108, -2.5511792 , 0.09671888])
>>>
Как вы можете видеть, что rand
дает мне значения в пределах 0-1,
тогда randn
дает мне значения с mean == 0
и variance == 1
Чтобы объяснить далее, позвольте мне генерировать достаточно большой выборки:
>>> a = np.random.rand(100)
>>> b = np.random.randn(100)
>>> np.mean(a)
0.50570149531258946
>>> np.mean(b)
-0.010864958465191673
>>>
вы можете увидеть, что среднее a
близка к 0.50
, который был создан с помощью rand
. Среднее b
с другой стороны близко к 0.0
, который был создан с помощью randn
Вы можете также получить преобразование из рандов номера для randn чисел в Python с помощью применение процентной точечной функции (ppf) для нормального распределения с распределенными случайными величинами ~ N (0,1). Это хорошо известный метод проектирования любых равномерных случайных величин (0,1) на ppf для получения случайных величин для желаемого кумулятивного распределения.
В Python мы можем визуализировать этот процесс следующим образом:
from numpy.random import rand
import matplotlib.pyplot as plt
from scipy.stats import norm
u = rand(100000) # uniformly distributed rvs
z = norm.ppf(u) # ~ N(0,1) rvs
plt.hist(z,bins=100)
plt.show()
- 1. Генератор случайных смежных чисел
- 2. Генератор случайных чисел Crossplatform
- 3. генератор случайных чисел C++
- 4. Генератор распределенных случайных чисел
- 5. Треугольные генератор случайных чисел
- 6. Генератор случайных чисел Boost
- 7. Node.js генератор случайных чисел?
- 8. Генератор генераторов случайных чисел
- 9. Генератор случайных чисел Haskell
- 10. Генератор псевдослучайных случайных чисел
- 11. Генератор случайных чисел Java
- 12. Генератор генераторов случайных чисел
- 13. Генератор случайных чисел
- 14. Генератор случайных чисел Python
- 15. Генератор случайных чисел механизм
- 16. Javascript Генератор случайных чисел
- 17. Генератор случайных чисел MATLAB
- 18. Истинно генератор случайных чисел
- 19. Рекурсивный генератор случайных чисел
- 20. Рубин. Генератор случайных чисел
- 21. java генератор случайных чисел
- 22. Verilog Генератор случайных чисел
- 23. Генератор случайных чисел
- 24. Вероятностный генератор случайных чисел
- 25. Предвзятый генератор случайных чисел
- 26. Генератор случайных чисел C++
- 27. Неисправный генератор случайных чисел?
- 28. Генератор случайных чисел: счетчик
- 29. Генератор случайных чисел C#
- 30. Генератор случайных чисел Выпуск