Где и как применить Python на практике? Три основные сферы его применения. Часть 2

NOP
NOP::Nuances of Programming
6 min readJul 11, 2018

Перевод статьи YK Sugi: What exactly can you do with Python? Here are Python’s 3 main applications

Предыдущие части: Часть 1

Анализ и визуализация данных

Чтобы помочь вам разобраться в том, о чем я говорю, позвольте мне привести небольшой пример:

Допустим, вы работаете в компании, которая продает свою продукцию в Интернете. Как аналитик, вы должны будете построить вот такой график:

Диаграмма № 1 — создана с помощью Python

Основываясь на этом графике, можно сказать, что в это воскресенье мужчины купили 400 единиц условного продукта, а женщины около 350 единиц. Исходя из этого, вы должны придумать несколько возможных объяснений такой разницы.

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

Чтобы установить истинную причину, вы можете нарисовать другой график, подобный этому:

Линейный график №1 — создан с помощью Python

Вместо того, чтобы рассматривать данные только за воскресенье, мы рассматриваем данные за целую неделю. Как вы видите, разница довольно последовательна в различные дни.

Благодаря этому небольшому анализу, мы делаем вывод, что наиболее убедительным объяснением этой разницы является то, что продукт всего-навсего более популярен у мужчин, чем у женщин.

А что, если вы увидите такой график?

Линейный график №2 — создан с помощью Python

Что тогда объясняет такую разницу в воскресенье?

Вы могли бы предположить, что мужчины более склонны к приобретению данного продукта именно в воскресенье по какой-то причине. Или это просто совпадение.

Итак, это был упрощенный пример того, как может выглядеть анализ данных в реальном мире.

Работа по анализу данных, которой я занимался пока работал в Google и Microsoft, очень схожа с верхним примером — только данных было намного больше и анализ сложнее. Я использовал Python для анализа данных в Google, в Microsoft использовал JS.

В обоих компаниях я использовал SQL, чтобы вытащить данные из баз данных. Для визуализации данных я использовал Matplotlib (в Google) и D3.js (в Microsoft).

Анализ данных и визуализация в Python

Одной из самых популярных библиотек для визуализации данных является Matplotlib.

Эта библиотека станет отличным выбором для вас:

  • Вы сможете легко и достаточно быстро ее освоить
  • На ее основе построены многие другие библиотеки, например seaborn. Изучив Matplotlib, в будущем вам будет легче разобраться с другими библиотеками на его основе.

Как мне следует начать анализировать данные с помощью Python?

Сначала вам следует взяться за изучение фундаментальных принципов анализа и визуализации данных. Когда я искал в интернете достойные ресурсы по этой теме — я ничего не нашел. Поэтому, я сам записал обучающее видео на YouTube по этой теме:

Введение в анализ данных / визуализация с помощью Python и Matplotlib

Также я создал свой собственный курс по этой теме на Pluralsight, который вы можете пройти бесплатно, подписавшись на их 10-дневную бесплатную пробную версию.

Я бы рекомендовал вам посмотреть и то и другое.

Изучив основы анализа и визуализации данных, вам будет полезно также изучить основы статистики с таких сайтов, как Coursera и Khan Academy.

Скриптинг

Что такое скриптинг?

Скриптинг обычно используется при написании небольших программ для автоматизации простых задач. Позвольте мне привести пример из личного опыта:

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

Мы могли бы делать это вручную, но вместо этого я написал простой скрипт для автоматизации этой задачи.

В то время, для написания скрипта я использовал Ruby, однако Python также прекрасно подойдет для решения подобного рода задач. В данном случае его основным преимуществом перед Ruby будет простой синтаксис и скорость работы: вы можете быстро написать небольшой скрипт и протестировать его работу.

Что насчет встраиваемых систем?

Я не специалист по встраиваемым системам, но я точно знаю, что Python отлично работает с Rasberry Pi и пользуется популярность среди любителей подобного аппаратного обеспечения.

А как насчет разработки игр?

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

Скорее, я бы рекомендовал вам начать с Unity на языке C #. Движок Unity является одним из самых популярных игровых движков в мире — это позволяет вам создавать игры для всех основных платформ, включая Mac, Windows, iOS и Android.

Что насчет приложений для ПК?

Вы можете писать приложения на Python для ПК, используя библиотеку Tkinter, однако это не самый популярный способ.

На сегодняшний день, для написания приложений для ПК, гораздо чаще используют такие языки, как Java, C # и C ++ . Совсем недавно, некоторые компании начали использовать JavaScript в качестве основного языка разработки.

Например, настольное приложение Slack было создано с помощью фреймворка Electron — который позволяет разрабатывать нативные графические приложения для настольных операционных систем с помощью веб-технологий.

Если бы мне пришлось писать приложение для ПК, то лично я бы использовал JavaScript — это позволило бы мне повторно использовать код из веб-версии. Тем не менее, я не специалист в разработке настольных приложений.

Python 3 или Python 2?

Я бы порекомендовал вам использовать Python 3, поскольку на сегодняшний день он более современен и популярен.

Разница между back-end и front-end кодом (на тот случай, если вы не можете в этом разобраться):

Предположим, вы хотите создать свой собственный проект — что-то вроде Instagram.

Сначала, вам придется написать frontend код для каждого типа устройств и ОС, которые вы будете поддерживать. Для этого вы можете использовать, например:

  • Swift для iOS
  • Java для Android
  • JavaScript для веб-браузеров

Каждый из наборов кода будет использоваться в зависимости от используемого устройства или браузера. Он будет определять компоновку дизайна, как должны выглядеть кнопки при нажатии на них и т. д. То есть front-end код будет определять все, что касается графического интерфейса приложения.

Затем вам нужно позаботиться о возможности хранения информации и фотографий пользователей на своих серверах. Иначе пользователи просто не смогут просматривать фотографии и информацию других пользователей.

Вот здесь то нам и нужен back-end / server-side код. Вам нужно будет написать backend код, для возможности выполнения подобных операций:

  • Обрабатывать: кто на кого подписался и кому поставил лайк
  • Сжимать фотографии пользователей, чтобы они не занимали слишком много места на ваших серверах
  • Рекомендовать пользователям фотографии других пользователей и т. д.

Проще говоря, front-end код нужен для создания дизайна и интерфейса приложения или сайта. А back-end код обеспечивает взаимодействие с сервером. В этом и заключается разница между frontend и backend кодом.

Кстати, Python — не единственный хороший вариант для написания backend / server-side кода. Есть много других популярных и неплохих вариантов, которые вы можете использовать, включая Node.js, который основан на JavaScript.

Понравилась ли вам эта статья? Возможно, вам также понравится мой Youtube канал

У меня есть канал обучения программированию на YouTube, который называется CS Dojo с 440 000 + подписчиками, где я регулярно выпускаю качественный контент.

Например, вам могут понравиться эти видеоролики:

С какого языка программирования следует начинать обучение прежде всего?
Как я изучал программирование и получил работу в Google

В любом случае, спасибо за прочтение!

--

--