Рубрики
Без рубрики

Python Random.seed () – глубокое погружение

Введение Случайный – это встроенный модуль в Python, который генерирует псевдослучайные числа. Теперь случайные данные, сгенерированные этим модулем, не совсем случайно. Вместо этого он является псевдо-случайным, как упоминалось ранее. 📚 ПРИМЕЧАНИЕ. «Истинное случайное число» может быть сгенерировано Trng (истинным генератором случайных чисел), когда создается «псевдослучайное число» … Python Random.seed () – Deep Dive Подробнее »

Автор оригинала: Shubham Sayon.

Вступление

Случайные это встроенный модуль в Python, который генерирует псевдослучайная числа. Теперь случайные данные, сгенерированные этим модулем, не совсем случайно. Вместо этого он является псевдо-случайным, как упоминалось ранее.

📚 Примечание: А «Истинное случайный номер» может быть сгенерирован Trng (истинный генератор случайных номеров) во время A «Псевдослучайное число» генерируется PRNG (Pseudorandom Number Generator).

⚠️ Trng находится за пределами объема обсуждения в этой статье.

Итак, Что такое PRNG (генератор номера псевдоранда)? 🧐.

PRNG initially generates a random number known as seed. Then an algorithm is used to generate a pseudo-random sequence of bits based on it. In simple words, it is an algorithm that generates seemingly random numbers; however, these numbers are still reproducible. 

Случайные Модуль имеет набор методов, которые помогают нам генерировать случайные элементы (числа). В этом руководстве мы будем сосредоточиться на Семя () Метод Случайные модуль Отказ

🖋️ Случайное семя () Метод в Python

Генератор случайных номеров нуждается в начальной точке, то есть, она нуждается в Значение семян начать генерацию последовательности случайных чисел. Таким образом, это Семя () Метод, который используется для инициализации генератора случайных чисел.

🚀 По умолчанию Текущее системное время используется генератором случайного номера в качестве начальной точки. Чтобы настроить начальный номер генератора случайного номера, вы должны использовать Семя () метод.

Синтаксис:

Пример:

import random

random.seed(10)
print(random.random())

Выход:

0.5714025946899135

🖋️ Как генерировать одно и то же случайное целое число каждый раз?

Если вы установите одинаковую Семя Значение перед вызовом любой функции случайных модулей, вы получите одно и то же число несколько раз.

Пример:

import random

for i in range(3):
    # setting seed value to 10
    random.seed(10)
    print("i[{}]={}".format(i,random.randint(12, 30)))

Выход:

i[0]=30
i[1]=30
i[2]=30

Объяснение: В вышеуказанном выходе мы получили тот же номер, что и вывод, потому что одинаковое семя было установлено перед использованием Рэннт каждый раз.

🌱 Сравниваемые () и Random.Choice ()

Выбор () это метод Случайные Модуль, который выбирает случайный элемент из указанной последовательности ( String , Range , Список , Tuple ).

Вы можете использовать пользовательское значение семян, чтобы получить значение одного и того же выбора снова и снова. Давайте посмотрим на следующий пример.

Пример

import random

x = "PNEUMONOULTRAMICROSCOPICSILICOVOLCANOCONIOSIS"
print("Output Without Setting A Seed: ")
for i in range(3):
    print(random.choice(x))
print("Output After Setting A Seed: ")
for i in range(3):
    random.seed(5)
    print(random.choice(x))

Выход:

Output Without Setting A Seed: 
R
C
N
Output After Setting A Seed: 
N
N
N

🌱 Что такое Numpy случайное семя?

The np.random.seed function provides a seed value, i.e., a base input value to NumPy's pseudo-random number generator in Python. 

Синтаксис:

Пример 1:

import numpy as np

for i in range(3):
    np.random.seed(101)
    print('i[{}]={}'.format(i, np.random.randint(low=1, high=10, size=10)))

Выход:

i[0]=[2 7 8 9 5 9 6 1 6 9]
i[1]=[2 7 8 9 5 9 6 1 6 9]
i[2]=[2 7 8 9 5 9 6 1 6 9]

Вот еще один пример, чтобы вы могли визуализировать эффекты numpy.random.seed Отказ

Пример 2:

import numpy as np

print("GENERATE SAME RANDOM NUMBER WITH NUMPY.RANDOM.RANDOM")
for i in range(2):
    np.random.seed(101)
    print('i[{}]={}'.format(i, np.random.random()))

print("\nSELECT A RANDOM SAMPLE FROM AN INPUT ARRAY")
for i in range(2):
    np.random.seed(0)
    print('i[{}]={}'.format(i, np.random.choice(a=[1, 2, 3, 4, 5, 6], size=5)))

Выход:

GENERATE SAME RANDOM NUMBER WITH NUMPY.RANDOM.RANDOM
i[0]=0.5163986277024462
i[1]=0.5163986277024462

SELECT A RANDOM SAMPLE FROM AN INPUT ARRAY
i[0]=[5 6 1 4 4]
i[1]=[5 6 1 4 4]

🖋️ Применение Numpy.random.seed

  1. Машинное обучение
    • Разделение наборов данных в тестовый набор и учебные наборы требуют случайной выборки. И случайная выборка, в свою очередь, требует псевдослучайных случайных чисел. Поэтому, если вы играете с моделями ML, то Random Numpy.seed () – это почти уверенность!
  2. Глубокое обучение
    • Так же, как ML Проблемы, проблемы с глубоким обучением также требуют разделения набора данных в тестовый набор и обучение, набор с помощью псевдослучайных чисел.
  3. Случайная выборка
  4. вероятность и статистика

🤷🏻 Часто задаваемые вопросы

🔍 Должен ли я использовать numpy.random.seed или rander.seed?

  • Ответ на этот вопрос зависит от того, используете ли вы случайный генератор Numpy в своем коде или на один в обычный случайном модуле.
  • Случайные генераторы в Случайные и numpy.random иметь совершенно разные/отдельные внутренние состояния. Это значит random.seed () не повлияет на случайные последовательности, генерируемые numpy.random.randn () и т. Д. Точно так же, numpy.random.seed () не повлияет на случайные последовательности, порожденные Random.random () , так далее.
  • Если вы использовали оба numpy.random и Случайные В вашем коде вы должны отдельно установить семена для обоих.

🔍 Какой номер я должен использовать в Random.

Неважно, какой номер вы используете в numpy.random.seed () метод. Использование разных семян может вызвать только Случайные модуль (или numpy в случае numpy.random.seed ) для генерации разных псевдослучайные числа. Таким образом, вывод случайной функции зависит от значения random.seed () Но выбор значения семян является произвольным.

Пример:

import random

print("SEED VALUE = 10")
for i in range(3):
    # setting seed value to 10
    random.seed(10)
    print("i[{}]={}".format(i,random.randint(12, 30)))
print("SEED VALUE = 15")
for i in range(3):
    # setting seed value to 15
    random.seed(15)
    print("i[{}]={}".format(i,random.randint(12, 30)))

Выход:

SEED VALUE = 10
i[0]=30
i[1]=30
i[2]=30
SEED VALUE = 15
i[0]=18
i[1]=18
i[2]=18

🔍 Как получить Random.seed (), чтобы использовать системное время?

Поскольку время продолжает меняться, следовательно, используя его в качестве значения семян для генерации случайных чисел, гарантирует, что значение семян продолжает меняться, и вы получите другую случайную последовательность/номер при каждом выполнении.

Пример:

import random
import time

random.seed(int(time.time()))
c = 'abcdefghijklmnopqrstuvwxyz0123456789%^*(-_=+)'
password = ''.join([c[random.randint(0, len(c) - 1)] for i in range(10)])
print("New Password: ", password)

Выход:

New Password:  za2arj+hjz

Вывод

Я надеюсь, что эта статья помогла вам понять важность и использование Сравниваемые в питоне. Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных концепций. Счастливое кодирование! 🐍

  • Вы хотите быстро освоить самые популярные Python IDE?
  • Этот курс приведет вас от новичка к эксперту в Пычарме в ~ 90 минут.
  • Для любого разработчика программного обеспечения имеет решающее значение для освоения IDE хорошо, писать, тестировать и отлаживать высококачественный код с небольшим усилием.

Присоединяйтесь к Pycharm MasterClass Сейчас и мастер Pycharm на завтра!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @: