Где используют Python

Где используют Python

Data science, web development, gamedev и не только.

Python легко освоить благодаря простому и читабельному синтаксису. Этот язык применяют для множества задач — разработки веб-сайтов, приложений и игр, анализа данных, системного администрирования, тестирования. На Python пишут в Google, Facebook, Instagram, Spotify, Netflix.

По данным украинского сервиса поиска работы djinni, для Python-разработчиков открыто около 1800 вакансий, а один кандидат получает в среднем 10 предложений о работе в месяц.

Мы спросили у экспертов, как они используют Python в своей работе. Информацией поделились:

  • Кристина Исакова, Data Scientist в Holidu и лектор курса «Прогнозирование и анализ временных рядов»;
  • Александр Пиндык, Team Lead, Senior Software Engineer, Game AI Developer в Wargaming;
  • Артем Тополь, System Product Owner в Wirex R&D;
  • Ярослав Недашковский, сооснователь и CTO в a-Gnostics.

Data science, data analytics & data visualization

По данным Python Developers Survey 2020, 55% принявших участие в опросе используют язык для работы с данными.

Данные 2019 года показывают, что 87% data scientists используют именно этот язык при работе с большими объемами информации.

Кристина Исакова: «Дата-сайентисты, дата-аналитики и дата-инженеры, как правило, работают вместе и обмениваются результатами. Когда команда использует одни и те же инструменты, это значительно упрощает работу.

У Python есть все инструменты для анализа и обработки данных: библиотеки для статистического анализа и прогнозирования, широкий выбор пакетов для визуализации. Количество библиотек растет, адаптируясь к требованиям бизнеса и рынка.

Этот язык очень гибок. Он позволяет производить обработку данных, строить модели, создавать веб-сайты. В отличие от R или matlab, Python выходит за рамки академического пользования, что упрощает интеграцию с другими проектами.

Я работаю с time series (временными рядами) — последовательностью статистических значений некоторой переменной, зарегистрированных с определенным временным интервалом. Они помогают мониторить трафик на сайте, анализировать цикл продаж, строить механизмы проверки здоровья систем (нагрузка на сервер, уровень температуры), работать с медицинскими данными (пульс, сердечный ритм). Временные ряды используются и в прогнозировании, мониторинге, выявлении аномалий.

У Python есть много библиотек и инструментов для работы с временными рядами. Так, с помощью библиотеки statsmodels можно разложить ряд на составляющие: тренд, сезонность и остатки. Также можно исследовать автокорреляцию и частичную автокорреляцию. Statsmodels предлагает инструменты сглаживания временного ряда и построения моделей прогнозирования, таких как экспоненциальное сглаживание и модели Хольта-Винтерса. Библиотека Pandas, используемая многими аналитиками, позволяет упростить работу с временными рядами, используя индексацию по времени».

Python предоставляет десятки графических библиотек. Чтобы создать графическое представление или интерактивный сюжет, нужно подобрать библиотеку — например, Pandas Visualization или Plotly.

Ярослав Недашковский: «Python у нас — основной язык для Data Science. Мы используем его и для задач DataOps (сбор, валидация, очистка данных), и для ModelOps (тренировка, переобучение, версионирование моделей и так далее). Кроме того, большинство сервисов a-Gnostics — нашей платформы для анализа данных c промышленного оборудования — написано именно на Python.

Важно, что язык дает возможность за несколько дней построить прототип.

Но есть и минусы. Простота Python может сыграть злую шутку. Некоторые временные и не самые оптимальные решения могут стать постоянными (плата за низкий порог входа). Но если проводить code review — проблема исчезнет. Также среди недостатков — ограничения по скорости и памяти, но их сложно назвать критическими. При грамотном написании кода и организации сервисов проблем быть не должно.

Python — лучший инструмент с хорошей инфраструктурой для решения задач анализа данных. Радует, как быстро развивается автоматизация в Data Science (например, появился сервис coiled.io, который позволяет масштабировать конвейеры данных в облаке с минимальными модификациями в коде), что позволяет больше фокусироваться на построении продукта».

Также на Python пишут парсеры для сбора информации в интернете.

Библиотеки языка помогают решить ключевые задачи ML. Среди таких библиотек:

  • Scikit-Learn для обработки основных алгоритмов машинного обучения, таких как кластеризация, линейная и логистическая регрессия, классификация и другие.
  • TensorFlow для работы с нейронными сетями.
  • Pandas для высокоуровневых структур данных и анализа.
  • Keras для произведения быстрых вычислений и создания прототипов.
  • NLTK для работы с компьютерной лингвистикой, распознаванием и обработкой естественного языка.
  • Scikit для обработки изображений.

Кроме ML, Python востребован и в финтех-сфере. В 2016 году HackerRank исследовал, какие языки активно ищут работодатели. Для финтеха (криптовалюты, банковский софт, аналитические инструменты) самым востребованным стал Python.

К 2021 году ситуация не изменилась: по данным eFinancialCareers, для Python-разработчиков открыто больше всего вакансий по сравнению с разработчиками на других языках.

Бизнесу нужны масштабируемые, но простые и совместимые с разными библиотеками и компонентами решения в разработке. Поэтому при выборе языка особенно учитываются три фактора: API-соединение, интеграция и безопасность. Python позволяет справиться со всеми тремя и даже предложить больше — обширную экосистему финансовых библиотек с открытым исходным кодом:

  • NumPy для быстрых векторизованных операций с массивами.
  • SciPy — сборник научных классов и функций.
  • Cython — статический компилятор для гибридного кода Python и C.
  • Pandas для управления временными рядами и табличными данными.
  • PyTables для операции ввода-вывода и другие.

Кроме того, используя Python, можно быстро написать MVP, а значит — быстро найти рынок и клиентов. Платформа Clearminds, предлагающая финансовые консультации и инвестиционные инструменты, — один из примеров успешного использования подхода MVP. Она написана на Python и Django.

Артем Тополь: «Python распространен практически во всех Fintech-направлениях. Особенно Python полезен в Data Science и Quantitative Analysis благодаря огромной базе модулей. Думаю, порядка 95% всех задач математической статистики, эконометрики и теории вероятностей можно решить за несколько минут с помощью Python.

Также Python применяется в профессиональном трейдинге компаниями по управлению активами, High-Frequency Trading-компаниями и хедж-фондами для построения прикладных математических моделей, описывающих рыночные процессы, или при построении моделей ценообразования ценных бумаг. Конечную реализацию на Python обычно не пишут из-за его низкой производительности по сравнению с другими языками.

Я аналитик — и часто и широко использую Python. Мне необходимо работать с новыми 3rd party, которые представляют интерес для Wirex. Поэтому при подготовке документации я делаю интеграцию с 3rd party при помощи Python и полностью прохожу все workflow на низком уровне. Это позволяет понять и описать все возможные кейсы.

Также на Python удобно и быстро делать выборки данных, рассчитывать статистические показатели и визуализировать их — это экономит время».

Web-разработка

Поскольку Python — серверный язык программирования, с его помощью пишут web-приложения. Согласно статистике из разных ресурсов, Python лидирует среди языков для backend-разработки.

На Python можно построить бизнес-логику и взаимодействие с базой данных. Библиотеки расширяют возможности языка. Например, Numpy, scikitLearn для анализа данных и математических алгоритмов, и составных SQL-запросов. И все это — в открытом доступе: Python можно использовать и распространять бесплатно.

Также у Python есть много фреймворков — наборов инструментов, которые ускоряют разработку веб-приложений. Среди популярных: Django, Flask, Pyramid, Web2Py и Turbogears. Они содержат пакеты и модули стандартизованного кода, которые помогут с некоторыми частями приложения — например, маршрутизацией URL-адресов, доступом к базе данных, HTTP-запросами и ответами.

Game Development

Battlefield 2, Pirates of the Caribbean, Sims 4, Disney's Toontown Online (также применяет Panda3D для графики) и другие популярные игры используют Python для своих функций и надстроек. С развитием игровой индустрии язык выбирают все чаще, потому что он прост и дает возможность быстро создавать прототипы видеоигр.

Александр Пиндык: «Когда пишешь на Python, получается простой, понятный и красивый код. Это позволяет сосредоточиться на написании бизнес-логики. В gamedev необходимо делать множество быстрых итераций при разработке механик и особенностей, и Python позволяет делать это легко. Чем быстрее получается каждая новая итерация, тем больше качественных фич будет в игре. Еще у Python достаточно низкий порог вхождения, многие изучают его как первый язык. Поэтому найти специалиста гораздо проще, чем, например, специалиста на языке C++. Учитывая темпы роста gamedev, сейчас это очень актуально.

Как используют Python в gamedev:

Автоматизация тестирования. Python отлично подходит для построения полного цикла тестирования: от подготовки сценария, запуска клиента игры, мониторинга того, как проходит сценарий, — и до обработки и визуализации результатов тестирования.

DevOps — для автоматизации развертывания, настройки серверов и работы с разного рода конфигурациями. А также для сбора и визуализации информации о состоянии разных сервисов игры.

Написание дополнительных околоигровых сервисов. Например, валидация платежей из разных источников, backend веб-сервисов компании и игры, сервисы статистики и другие полезные дополнения к игре.

Еще Python можно использовать как основной скриптовый язык движка. Например, в Wargaming мы делаем так для движка BigWorld, на котором разработаны World of Tanks, World of Warships и World of Warplanes.

Игры становятся сложнее. Индустрия движется в сторону игр-сервисов или игр с дополнительными социальными механиками. Чем больше игра становится похожа на социальную платформу, тем больше сервисов ей нужно и тем активнее для их разработки будет применяться Python».

Среди известных фреймворков:

  • Pyglet поддерживает работу с окнами, обработку событий программы, джойстики, графику OpenGL, загрузку изображений, звука, музыки и видео практически в любом формате.
  • Panda3D — 3D-движок, написанный на C ++, с полным набором привязок Python. Поддерживает расширенные опции — шейдеры, трафарет и рендеринг в текстуру.
  • PyKyra Pyglet — кроссплатформенная библиотека управления окнами и мультимедиа. Одна из самых быстрых сред разработки игр для Python, которая поддерживает все SDL, а также движок Kyra. PyKyra, кроме того, поддерживает видео MPEG, звук MP3, Ogg Vorbis, Wav и другие.
  • Ursina — движок, позволяющий перезагружать код, текстуры, модели во время игры, автоматически импортировать файлы .psd и .blend, играть в полноэкранном режиме во время разработки.

SEO

Хоть SEO и не относится к IT-сфере, Python и здесь увеличивает продуктивность работы. Генерацию RSS-канала, написание технического задания для копирайтера, анализ логов и другие процессы можно автоматизировать, зная основы Python.

Разберем на примерах.

Когда сайт переходит на новый адрес, ссылки со старого часто ломаются и перенаправляют пользователя на страницу с ошибкой. Технология сопоставления URL-адресов может отображать URL-адреса в таких ситуациях, соотнося определенные старые ссылки с новыми адресами. С Python это можно сделать автоматизированным способом, управляя большими объемами страниц.

Язык также может пригодиться для анализа внутренних ссылок — количества, состояния, тегов, направленности, что позволяет построить стратегию по улучшению. Если сайт большой, то вручную сделать это практически невозможно.

Еще один пример — отслеживание скорости загрузки веб-сайта, которая часто теряется на изображениях. Python используют для оптимизации изображений и уменьшения их размера без ущерба для качества.

Простой дизайн Python и его синтаксиса вдохновил на создание новых языков программирования. Cobra, CoffeeScript и Go используют синтаксис, аналогичный Python.

Это значит, что знание Python может помочь вам перейти в другие области.

Ещё статьи
Віктор Шитюк, Lead Data Engineer з 12 річним досвідом у IT сфері, про робочу рутину інженера даних, must-have інструменти та перспективи професії