numpy.random.ranf
numpy.random.ranf(size=None)
Массив случайных значений заданной формы.
Данная функция создает массив указанной формы и заполняет его случайными числами с плавающей точкой из непрерывного равномерного распределения в интервале [0, 1)
.
-
- size - целое положительное число или кортеж целых положительных чисел, необязательный параметр.
-
Если данный параметр не указан, то будет возвращено одно случайное число. Если указано одно число
d
, то будет возвращен одномерный массив с количеством элементов равнымd
. Если указан кортеж из нескольких чисел, то количество этих чисел будет определять количество осей массива, а их значения - количество элементов вдоль каждой из них.
-
- результат - массив NumPy или число
- Массив с формой указанной в параметре
size
заполненный равномерно распределенными случайными числами с плавающей точкой из интервала[0, 1)
. Если форма массива не указана, то возвращается одно случайное число.
Замечание
Чтобы получать случайные значения из произвольного интервала [a, b), то достаточно воспользоваться выражением:
(b - a) * ranf(...) + a
Единственное отличие от функции random.rand()
, заключается в том, что размеры результирующего массива передаются в виде кортежа, а не простого перечисления размеров через запятую. Поэтому функция random.rand()
считается несколько удобнее в "ручном" формировании случайных массивов.
random.rand()
Примеры
>>> import numpy as np
>>>
>>> np.random.ranf()
0.2000525381555982
>>>
>>> # Возвращаются числа типа float:
... type(np.random.ranf())
<class 'float'>
>>>
>>>
>>> np.random.ranf(5)
array([0.37974169, 0.92399783, 0.28419512, 0.51176251, 0.68400111])
>>>
>>> np.random.ranf((5, 5))
array([[0.05481257, 0.56440836, 0.66892821, 0.27568018, 0.66209195],
[0.93357365, 0.52950737, 0.88349864, 0.25034497, 0.10550762],
[0.13032572, 0.41682349, 0.26049962, 0.5089157 , 0.36212079],
[0.60110637, 0.64936469, 0.22421199, 0.60452475, 0.39732005],
[0.91654095, 0.85187179, 0.12468123, 0.41730225, 0.31038545]])
Получить значения из интервала [-10, 7) можно следующим образом:
>>> # (b - a) * np.ranf() + a, где b > a:
...
>>> (7 - (-10)) * np.random.ranf((5, 5)) - 10
array([[-4.52645803, -2.11486378, 2.48239844, 4.71156917, -6.16650869],
[-0.71739811, -3.81038347, -4.71483134, 5.07168885, 1.25680775],
[-4.03619685, -1.23544649, 0.12896096, -8.32259733, 1.87842868],
[ 4.51019244, -0.91045363, -6.54340521, 1.83726298, 0.68968909],
[-6.70360584, -4.14247652, -5.5753999 , -1.10211906, -6.38136077]])