Всем привет! Продолжаем изучать 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 - возвращают и устанавливают состояние генератора.
Если вам понравилась статья, подпишитесь на канал и тогда вы точно не пропустите новые части :)