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