Генерация случайных чисел в Python
В этом руководстве вы научитесь генерировать случайные числа в Python. Умение генерировать случайные числа различными способами может быть невероятно полезным инструментом во многих областях. Python делает генерацию случайных чисел различными способами очень простой.
Для выполнения этой задачи вы изучите модули random и numpy, включая функции randrange, randint, random и seed. Вы также узнаете о функциях uniform и normal, чтобы создавать более контролируемые случайные значения.
К концу этого урока вы узнаете:
Как генерировать случайные значения с плавающей запятой и целые числа
Как генерировать случайные числа между разными значениями
Как создавать списки случайных чисел
Как сгенерировать случайное число, соответствующее распределению Гаусса
Оглавление
Создать случайное значение с плавающей запятой в Python
Python поставляется с встроенным пакетом random
, что означает, что вам не нужно устанавливать дополнительные библиотеки. Эта библиотека значительно упрощает генерацию случайных чисел. Давайте сначала посмотрим, как создать случайное вещественное число от 0 до 1
Давайте разберем, что мы здесь сделали:
Мы импортировали библиотеку
random
Мы использовали функцию
.random()
из библиотеки
Функция random()
используется для генерации случайного числа с плавающей точкой в диапазоне от 0 до 1.
Создать случайное число с плавающей запятой между двумя числами
Хотя функция random()
генерирует случайное число с плавающей точкой между 0 и 1, иногда может возникнуть необходимость сгенерировать случайное число с плавающей точкой между любыми двумя значениями. Для этого вы можете использовать функцию .uniform()
. Давайте посмотрим, как это работает:
Вы можете видеть, что возвращаемое случайное число находится в пределах заданных границ (включая сами границы).
В следующем разделе вы узнаете, как генерировать случайное целое число в Python.
Библиотека random
позволяет легко генерировать случайные целые числа в Python. Для этого можно использовать функцию randint()
, которая принимает два параметра:
a=
это нижняя граница диапазона, которую можно выбратьb=
является верхней границей диапазона, которая также может быть выбрана
Давайте посмотрим, как можно сгенерировать случайное целое число в Python:
Генерация случайных чисел между двумя значениями в Python
В приведенном выше примере мы использовали 0 в качестве начальной точки. Однако, если мы хотим сгенерировать случайное число между двумя значениями, мы можем просто указать другое значение в качестве начальной точки (включая отрицательные значения).
Давайте повторим этот пример, выбрав случайное целое число от -100 до 100:
Генерация случайных чисел между двумя значениями на определенных шагах в Python
В этом разделе вы научитесь генерировать случайные числа между двумя значениями с определенным шагом. Это означает, что если вы хотите выбрать случайное число между, скажем, 0 и 100, но только кратное 3.
Для этого вы можете использовать функцию randrange()
. Давайте посмотрим, как это работает:
Важно отметить, что верхнее ограничивающее число не включается в выбор. Чтобы включить его, просто добавьте к значению 1, например, random.randrange(0, 101, 3)
Создать список случайных чисел в Python
В этом разделе вы научитесь генерировать список случайных чисел в Python. Поскольку это можно сделать разными способами, мы разделим этот раздел на несколько частей. По завершении вы научитесь выбирать список случайных вещественных чисел, случайных целых чисел и случайных целых чисел без повторений.
Создайте список случайных чисел с плавающей запятой
Чтобы сгенерировать список случайных чисел с плавающей точкой, мы можем просто несколько раз вызвать функции .random()
или .uniform()
. Мы можем использовать либо цикл for, либо понимание списка.
В приведенных ниже примерах мы будем использовать списочные включения для генерации двух списков: один со случайными числами с плавающей запятой между 0 и 1, а другой со случайными числами с плавающей запятой между двумя указанными числами:
Давайте разберем, что мы здесь сделали:
Мы создали новый список,
random_list
, который содержит понимание спискаСписковое включение повторяет вызов функции
.random()
4 раза.
Мы можем использовать тот же подход, чтобы создать список случайных вещественных чисел между двумя заданными числами:
Создайте список случайных целых чисел
Мы можем применить тот же подход для генерации списка случайных целых чисел. Для этого мы создадим списочное включение, которое несколько раз вызывает функцию random.randint()
. Давайте посмотрим, как мы можем создать список из 5 случайных целых чисел в диапазоне от 50 до 100:
Сгенерируйте список случайных целых чисел без замены
В этом разделе вы научитесь генерировать список случайных целых чисел без повторений. Это означает, что каждое число можно выбрать только один раз. Для этого можно использовать функцию random.sample()
Функция ожидает список значений и количество значений для выбора. Таким образом, если вы хотели бы выбрать пять значений без замены в диапазоне от 0 до 15, вы могли бы написать:
Создайте случайное (нормальное) гауссово распределение в Python
Библиотека random также позволяет выбирать случайное значение, соответствующее нормальному гауссовому распределению. Для этого можно использовать функцию gauss()
, которая принимает как среднее значение, так и стандартное отклонение распределения
Давайте посмотрим, как вы можете сгенерировать случайное значение из распределения со средним значением 10 и стандартным отклонением 1:
Хотите создать целое распределение? Ознакомьтесь с этой статьей, которая научит вас производить полное Гауссово (нормальное) распределение с использованием Numpy
Библиотека random также предлагает удобные способы генерации случайных чисел из других типов распределений. Полный список смотрите ниже:
Бета-дистрибутив:
random.betavariate()
Экспоненциальное распределение:
random.expovariate()
Гамма-распределение:
random.gammavariate()
Гауссово распределение:
random.gauss()
Логическое нормальное распределение:
random.lognormvariate()
Нормальное распределение:
random.normalvariate()
Создание воспроизводимых случайных чисел в Python
Часто возникают случаи, когда вам нужно генерировать случайное число, но при этом хотите иметь возможность воспроизвести ваш результат. Здесь на помощь приходит функция random.seed()
. Она позволяет установить начальное значение, которое вы можете воспроизвести в любое время.
Давайте посмотрим, как мы можем это сделать:
Давайте немного разберем это:
Мы импортировали библиотеку
Мы затем задали случайное начальное значение, используя число 100
Затем, когда мы выводили на печать случайное вещественное число, было возвращено значение
Если бы мы запустили это снова, вернулось бы то же значение
Заключение
В этом учебнике вы узнали, как генерировать случайные числа с использованием Python. Вы узнали, как работает библиотека random
для генерации случайных чисел, включая числа с плавающей запятой и целые числа. Вы также узнали, как генерировать случайные числа из разных диапазонов чисел, включая только кратные числа.
Вы научились генерировать списки случайных чисел, включая числа с плавающей точкой и целые числа, а также без замещения. Наконец, вы научились выбирать случайные числа из нормального распределения и как воспроизводить свои результаты.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с обучающими материалами ниже:
Python: выберите случайный элемент из списка
Python: перемешать список (рандомизировать элементы списка Python)
NumPy для науки о данных в Python
Last updated