Python: Numpy
Теория: Введение
В последние десятилетия цифровизация и автоматизация привели к накоплению больших объемов информации. Эти накопленные данные стали полезным источником информации для бизнеса, но принесли с собой много инфраструктурных проблем и головной боли разработчиков. Так появилась потребность в Data Mining — глубоком анализе данных с применением методов машинного обучения. Он выявляет неочевидные закономерности и таким образом решает бизнес-задачи.
Стандартные типы языка Python и его встроенные методы помогают решать разные аналитические задачи с данными. Но изначально Python не задумывался для таких задач, и поэтому не всегда стандартных инструментов достаточно. Для решения более сложных аналитических задач была разработана библиотека Numpy ("Numerical Python extensions"). В основном она направлена на удобство работы с массивами данных и ускорение вычислений с ними.
Особенности библиотеки Numpy
В Numpy используется особый тип данных — массив. Чтобы его создать, нужно конвертировать данные из списка (list). Посмотрим, как это выглядит в коде:
Работа с массивами в некоторых операциях аналогична действиями над списками, но предоставляет ряд дополнительных возможностей. Например, различие есть в операциях получения элементов по списку индексов — типом list она не поддерживается:
Еще Numpy упрощает логику арифметических операций. Например, вот так выглядят операции сложения и умножения массива на число:
Если бы мы работали со списками, для тех же операций потребовался бы еще и генератор списков:
Кроме того, Numpy ускоряет многие операции, что особенно заметно при работе с большими массивами. На примере ниже посмотрим, за какое время находится максимальный элемент списка и массива Numpy с аналогичным набором элементов:
Время выполнения в примере выше может отличаться в зависимости от производительности среды. Тем не менее операции над массивом Numpy в любом случае происходят в разы быстрее аналогичных операций над списком.
Еще одно преимущество библиотеки Numpy — широкая функциональность. Она включает в себя разные математические функции, модули для работы со случайными числами и матрицами, а также с преобразованиями Фурье.
Производительность Numpy, широкий спектр методов работы с массивами и удобный интерфейс подтолкнули разработчиков использовать библиотеку в качестве основы для модулей. Например, есть такие модули для работы с:
- Табличными данными — Pandas
- Визуализацией данных — Matplotlib, Plotly, Seaborn
- Алгоритмами машинного обучения — Sklearn
- Тензорами и глубокими нейронными сетями — TensorFlow
- Изображениями — OpenCV
Выводы
В самом начале курса мы познакомимся с основным компонентом библиотеки Numpy — массивом numpy.ndarray. Далее вы научитесь конвертировать стандартные структуры языка Python в указанный тип данных, а также использовать разные методы работы с данными.
Чтобы доступнее объяснить такие непростые темы, мы воспользуемся примерами из практики — поможем гипотетическому бизнесу с анализом данных по работе сети магазинов.
Даже если вы не работаете аналитиком, вы почерпнете из курса много полезных практик. Эти знания помогут оптимизировать программы так, чтобы они работали в разы быстрее благодаря библиотеке Numpy.



