Генерация массива NxM равномерно распределенных случайных чисел за указанный интервал (не [0,1)) в виде числа - PullRequest
0 голосов
/ 08 февраля 2019

Мне известна команда numpy.random.rand (), однако, похоже, нет никаких переменных, позволяющих настроить равномерный интервал, в котором числа выбираются, иными, чем [0,1).

Я рассмотрел использование цикла for, то есть инициацию нулевого массива необходимого размера, и использование numpy.random.unifom (a, b, N) для генерации N случайных чисел в интервале (a, b),а затем положить их в инициируемый массив.Я не знаю, чтобы этот модуль создавал массив произвольного измерения, как в случае с rand выше.Это явно не элегантно, хотя главная проблема - время выполнения.Я предполагаю, что этот метод будет иметь намного большее время выполнения, чем при использовании соответствующего генератора случайных чисел с самого начала.

Правка и дополнительные соображения: интервал, в котором я работаю, равен [0, pi / 8), что меньшечем 1. Строго говоря, я не буду влиять на случайность сгенерированных чисел, если я просто перемасштабирую, но умножение каждого сгенерированного случайного числа будет явно дополнительным вычислительным временем, я предполагаю с коэффициентом порядок количества элементов.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

numpy.random.uniform принимает аргумент size, в котором вы можете просто передать размер вашего массива как кортеж.Для генерации массива MxN используйте

np.random.uniform(low,high, size=(M,N))
0 голосов
/ 08 февраля 2019

np.random.uniform принимает минимум и максимум:

In [11]: np.random.uniform(-3, 3, 7)  # 7 numbers between -3 and 3
Out[11]: array([ 2.68365104, -0.97817374,  1.92815971, -2.56190434,  2.48954842, -0.16202127, -0.37050593])
...