NumPy, частина 3 random, Python 3 для початківців та чайників

Вітаю! Я продовжую роботу над посібником з python-бібліотеки NumPy.

Минулої частини ми навчилися працювати з масивами.

Сьогодні ми дізнаємося, як створювати масиви з випадкових елементів та як працювати з випадковими елементами у NumPy.

Шлях перший

Створювати списки, використовуючи вбудований модуль random, а потім перетворювати їх на numpy.array:

Але є спосіб кращий.

numpy.random

Для створення масивів з випадковими елементами служить модульnumpy.random.

Створення масивів

Найпростіший спосіб задати масив з випадковими елементами - використовувати функцію sample (або random, або random_sample, або ranf - це все та сама функція).

Без аргументів повертає просто число у проміжку [0, 1), з одним цілим числом – одномірний масив, з кортежем – масив із розмірами, зазначеними у кортежі (всі числа – з проміжку [0, 1)).

За допомогою функції randint або random_integers можна створити масив цілих чисел. Аргументи: low, high, size: від якого, до якого числа (randint не включає це число, а random_integers включає), і size - розміри масиву.

Також можна генерувати числа згідно з різними розподілами (Гаусса, Парето та інші). Найчастіше потрібен рівномірний розподіл, який можна отримати за допомогою функції uniform.

Вибір та перемішування

Перемішати масив NumPy можна за допомогою функції shuffle:

Також можна перемішати масив за допомогою функції permutation (вона, на відміну shuffle, повертає перемішаний масив). Також вона, викликана одним аргументом (цілим числом), повертає перемішану послідовність від 0 до N.

Зробити довільну вибірку з масиву можна за допомогою функції choice. Проїї варто розповісти докладніше.

numpy.random.choice(a, size=None, replace=True, p=None)

  • a: одновимірний масив або число. Якщо масив, проводитиметься вибірка з нього. Якщо число, то вибірка буде з np.arange(a).
  • size: розмірності масиву. Якщо None повертається одне значення.
  • replace : якщо True, одне значення може вибиратися більше разу.
  • p: ймовірності. Це означає, що елементи можна вибирати з нерівними можливостями. Якщо не задано, використовується рівномірний розподіл.

Ініціалізація генератора випадкових чисел

seed(число) – ініціалізація генератора.

get_state та set_state - повертають та встановлюють стан генератора.