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 - повертають та встановлюють стан генератора.