Генерация случайных чисел с помощью модуля np.random
На протяжении всего этого курса и его продолжения мы будем активно использовать модуль np.random. Можно смело сказать, что методы экземпляров генератора случайных чисел (RNG) вы будете вызывать чаще любых других функций, работая в роли хакера-статистика. Начнём с простой функции rng.random(). Она возвращает случайное число от нуля до единицы. Если вызвать rng.random() несколько раз, вы увидите, как каждый раз появляются разные числа в этом диапазоне.
В этом упражнении мы сгенерируем большое количество случайных чисел от нуля до единицы, а затем построим гистограмму результатов. Если числа действительно случайны, все столбцы гистограммы должны быть примерно одинаковой высоты.
В видео Джастин генерировал 4 случайных числа, передавая аргумент size=4 в функцию rng.random(). Такой подход эффективнее цикла for. Однако в этом упражнении вы напишете именно цикл for, чтобы почувствовать суть хакерской статистики — многократного повторения эксперимента.
Это упражнение является частью курса
Статистическое мышление на Python (часть 1)
Инструкции к упражнению
- Создайте генератор случайных чисел
rngи инициализируйте его с зерном42. - Создайте пустой массив
random_numbersиз 100 000 элементов для хранения случайных чисел. Используйте для этогоnp.empty(100000). - Напишите цикл
forдля генерации 100 000 случайных чисел с помощьюrng.random()и сохранения их в массивrandom_numbers. Для этого выполните итерацию поrange(100000). - Постройте гистограмму массива
random_numbers. Подписывать оси в данном случае не нужно — мы просто проверяем работу генератора случайных чисел. Нажмите «Отправить ответ», чтобы отобразить график.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Instantiate and seed the random number generator
# Initialize random numbers: random_numbers
random_numbers = ____
# Generate random numbers by looping over range(100000)
for i in ____:
random_numbers[i] = ____
# Plot a histogram
_ = plt.hist(____)
# Show the plot
plt.show()