питон что можно программировать
Язык Python: что это такое, как использовать и где применяется
Что такое питон простыми словами
Для того чтобы понять, что такое Python нужно разобраться зачем вообще нужны языки программирования. Они нужны для взаимодействия человека и компьютера. Между собой люди общаются на естественном языке.
Язык программирования Python
Питон является относительно простым высокоуровневым скриптовым языком, который служит для создания различных сценариев. Это означает, что для программирования на Python, не требуется знания машинных кодов — команд для компьютера.
Под скриптовым языком программирования можно понимать то, что выполнение программы происходит сверху вниз построчно.
Программирование при помощи машинных кодов ускоряет программу, но очень трудоемко и требует хорошего знания архитектуры компьютера. Одним из таких низкоуровневых языков является ассемблер. Чаще всего низкоуровневое программирование используется в промышленности для специализированных контроллеров, где нет большого объема памяти.
Python может использоваться для программирования контроллеров в станках ЧПУ и в робототехнике. Популярный во всем мире одноплатный микрокомпьютер Raspberry Pi также программируется на питоне. С помощью «малинки» можно программировать роботов, умные дома, квадрокоптеры и множество других вещей. Pi в названии миникомпьютера обозначает, что программирование происходит на Python.
одноплатный микрокомпьютер Raspberry Pi
На языке высокого уровня нужно уметь программировать при помощи понятий, обозначаемых словами. Чаще всего это английский язык, но есть и примеры кодирования на других языках. Например, программу «Бухгалтерия 1С» можно редактировать и изменять на русском.
Питон поддерживает объектно-ориентированное программирование и является интерпретируемым языком. Это означает, что программа выполняется построчно и для ее выполнения на компьютере должен быть установлен интерпретатор. Самым распространенным и популярным интерпретатором является CPython.
История появления
Кто создал Python
Питон был задуман в еще в далеких 80 — х программистом из Голландии Гвидо ван Россумом. Создавать его Гвидо начал в 1989 году как замену языку ABC, предназначенного для обучения студентов программированию. Он создавался на энтузиазме, без бюджета и поддержки.
Работал Гвидо ван Россум по вечерам и в выходные дни. В результате за несколько недель был написан интерпретатор Python. Многие идеи были взяты из других языков программирования таких как C и ABC. В итоге из этого проекта вырос Python, входящий в тройку самых популярных языков мира.
Почему так назвали
Гвидо ван Россум был поклонником комедийного телешоу «Летающий цирк Монти Пайтона» и в честь этого английского сериала, популярного в 1970 – х годах дал название своему языку программирования Python. Этот сериал принес еще одно очень популярное сегодня слово «спам». Оно обозначает навязчивую рекламу, с которой знаком каждый.
Этапы развития Python
Публикация исходного текста Python произошла в 1991 году. Язык был относительно несложным. В нем было мало функций и интерпретатор «interpreter» тоже был небольшого размера.
Всего было 3 версии питона:
Как работает Python
После того, как написан код, должна произойти его обработка интерпретатором Python. Что такое обработка?
официальный сайт Python с интерпретатором
Для этого интерпретатор должен быть установлен на вашем компьютере. В целом обработка кода происходит в четыре этапа:
Программу в питоне часто называют скрипт или сценарий.
Всю информацию по обработке кода можно найти в документации Python в открытом доступе.
Синтаксис питона
Для того, чтобы было удобнее работать программистам с языком Python был придуман достаточно простой синтаксис. Приведу основные принципы.
Есть еще некоторые специальные случаи, которые лучше рассмотреть отдельно.
Что есть внутри Python 3
Что такое базовые структуры данных:
В питоне всего семь типов операторов:
Битовые они исполняют побитовую операцию или, можно сказать, производят работу над операндами бит за битом. Бинарное «И» «&», бинарное «ИЛИ» «», бинарное «ИЛИ НЕТ» «^», инвертирующий оператор (
), бинарный сдвиг влево « >».
Приоритет арифметических операций:
Циклы
Циклом называется многократное повторение каких-либо операций, которое зависит от заданных условий. Циклы значительно упрощают написание программ, и в цикле присутствует условие и тело цикла.
Тело цикла – последовательность операций или кода, которая может выполняться несколько раз.
Итерация «iteration» — однократное повторение тела цикла. Итерируемый объект – повторяемый объект «iterable». Он отдает один результат за итерацию. «Iterator» итератор — это объект, который позволяет получить следующий элемент цикла.
В Python можно использовать два цикла while и for.
while :
Блок кода выделяется табуляцией, которая обычно составляет 4 пробела. В цикле могут быть опции «else», «elif» принудительная остановка, пропуск остатка цикла «continue». Цикл может быть бесконечным.
for in :
В цикле «for» происходит поочередный перебор последовательности нужное количество раз. Все операторы «else», «break», «continue» аналогичны операторам в цикле «while». Для исполнения скрипта определенное количество раз используется функция «range».
Функции
Функция – это часть кода, принимающая аргументы и возвращающая вычисленное значение. Аргумент – это объект, отправляемый в функцию. Аргументом может быть какое-нибудь значение или ссылка на него.
функции языка программирования Python
В функции используются параметры и их число не ограничено. Число аргументов соответствует параметрам. Функцию можно объявить в любом месте. Она записывается как:
— def (): — после определения функции ставиться двоеточие, аргументы функции заключаются в круглые скобки. После двоеточия идет со следующей строки отступ и тело функции.
Для выхода из функции используется оператор return, который возвращает значения. Если оператор return не указан, то произойдет возврат значения None.
Функции бывают встроенные и пользовательские. В интерпретаторе Python есть ряд часто используемых функций. Они всегда доступны и можно посмотреть документацию с их описанием и примерами применения. Например, при помощи функции input () можно ввести данные с клавиатуры, а при помощи функции print () вывести данные в консоль. Так, print (“Hello, World!”) выводит строку «Hello, World!».
Еще одной интересной функцией является декоратор. Декоратор позволяет расширить возможности функции, не меняя ее кода, при помощи обертывания функции другой функцией.
Существует возможность написать свою собственную функцию для нужных задач. Кроме этого есть много функций, которые существуют в библиотеках Python и также могут быть использованы при написании скриптов. Для этого нужно скачать нужную библиотеку и импортировать ее.
Классы и методы
Класс включает в себя данные и методы. Класс – данные такого типа данных, который состоит из пакета свойств и средств для работы с ними. Создаются классы с помощью инструкции «class». В его теле может быть блок различных инструкций.
Класс содержит атрибуты, наследуемые объектами, которые написаны на основе этого класса. При вызове класса метод запускается автоматически.
Методы в классе очень похожи на функции, но принимают только один обязательный параметр. Этот параметр необходим для связи с нужным объектом. Методы помогают работать со строками, массивами, списками и т.д. Классы и их методы лучше изучать подробно в отдельной теме.
Массивы
В массивах «array» хранятся однотипные данные, структурированные определенным образом. Они похожи на списки, но ограничены размером и типом входных данных. Для создания нового массива нужно импортировать библиотеку, которая может с ним работать. Ячейки массива имеют одинаковый размер.
одномерные и многомерные массивы в Python
Массивы бывают одномерными, двумерными, многомерными. Размерность массива можно изменять, поэтому предусмотрена функции, позволяющие измерить его размер. В массиве можно добавлять и удалять элементы.
Модули
Для того, чтобы использовать классы, функции или данные в другой программе в Python можно поместить их в отдельный файл, называемый модулем. Это позволяет повторно использовать ранее написанный код. Модуль можно импортировать при помощи оператора «import» и использовать в других модулях и скриптах.
Некоторые модули уже встроены в интерпретатор по умолчанию. Кроме этого Python 3 имеет библиотеку, содержащую более чем 200 стандартных модулей, с которыми он распространяется.
Ошибки и исключения
Всего в питоне два существует два типа ошибок:
Такую ошибку можно обработать и продолжить работу скрипта дальше. Если обработки исключения не происходит, то программа останавливается и в консоли публикуется какого типа эта ошибка с полным ее описанием и указывается место, где она произошла.
У исключений есть своя иерархия и ее можно посмотреть в документации. При обработке исключений не происходит аварийное завершение приложения. Для того, чтобы обработать исключение, нужно поместить блок в котором возможна ошибка в конструкцию «try … except».
Библиотеки и фреймворки
В Python есть уже встроенные библиотеки, поставляемые вместе с интерпретатором. Они служат для расширения возможностей разработчика при написании программ. Также есть огромное количество внешних библиотек и фреймворков, которые можно подключить и использовать.
Такое количество библиотек дает преимущество, и способствует популярности Python. Например, высокоуровневая библиотека Pandas. Назначение Pandas – это обработка и анализ данных. Она используется в таких профессиях как Data Science и продолжает активно развиваться.
Для того, чтобы жизнь разработчика была легче, разработано множество веб фреймворков. Они позволяют автоматизировать рутинные процессы и задачи. Также фреймворки дают готовую структуру для написания web приложений.
Python бибиотека Pandas
Одним из самых популярных фреймворков с открытым свободным кодом является Django. С его помощь можно не добавлять разные библиотеки отдельно, а установить большинство стандартных функций одним пакетом. В 2010 году с помощью фреймворка Django был создан Instagram и в 2012 году Facebook купил его за миллиард долларов.
Pyramid является еще одним open-source популярным фреймворком. Он универсальный, и дает возможность работать с большими и малыми приложениями. У него хорошее и понятное руководство или пособие. Pyramid используется в тех случаях, когда не требуется разработки полноценной CMS, а хватает веб приложения. Этот фреймворк позволяет быстро собрать проект.
Что такое виртуальные среды или окружения языка Python?
Иногда при написании приложений возникают трудности, которые связаны с применением разных версий библиотек. Могут различаться требуемые версии, бывает нельзя изменять и обновлять библиотеки, также библиотеки могут быть недоступны.
Для того, чтобы эти проблемы не возникали были придуманы виртуальные среды или окружения. В каждой виртуальной среде можно запускать свое приложение с набором библиотек. Изменение или обновление этих библиотек не влияет на остальные приложения также использующие эти библиотеки.
Существует программное обеспечение, позволяющее формировать виртуальное окружение. Оно бывает встроенное в Python и внешнее. В стандартную библиотеку Python 3 входит модуль venv.
Для чего предназначен и что можно делать на Python
Преимущества и недостатки
Плюсами Python является простота, большое количество встроенных и внешних библиотек и фреймворков, открытый исходный код и большое сообщество программистов, читабельность и удобство кода, гибкость и масштабируемость языка, позволяет уменьшать время на разработку кода.
К минусам можно отнести низкую скорость выполнения в больших проектах, привычка к простому коду, время на дополнительное тестирование кода, связанное с динамической типизацией, не очень удобен для мобильных приложений, несовместимость разных версий Python.
Какие компании используют Python
О популярности Python говорит тот факт, что он используется такими компаниями, как Google в качестве одного из официальных серверных языков.
Транснациональная корпорация Google
Facebook опубликовал большое количество проектов на Python, Instagram использует веб сервера написанные на Python, Spotify где написано большое количество сервисов на питоне.
Dropbox применяет язык в клиенте для персональных компьютеров, сайт Reddit полностью переписан на Python. И это далеко не все компании, которые используют Python в своей работе.
Что такое Anaconda
Это бесплатный дистрибутив языков Python и R. Anaconda скачивается с официального сайта и устанавливается на компьютер. Платформа применяется для машинного обучения и науке о данных. В состав Anaconda входит большой набор доступных популярных библиотек и пакетов.
Она является виртуальной машиной, которая не связана с операционной системой, и с ее помощью можно программировать на Python. Поддерживается Windows, Linux, Mac OS.
Обучение Python с нуля
Начать обучение питону с нуля можно при помощи книг таких как «Программируем на Python» Майкла Доусона, «Изучаем Python» Марка Лутца и других. Но обычно книги используются как справочная информация или руководство по питону.
Книга «Программируем на Python» Майкла Доусона
Кроме книг в интернете представлено большое количество сайтов с обучающими материалами. Их можно найти, сделав запрос в поисковике. Есть много бесплатных и платных обучающих видеокурсов, в которых бывают материалы различного качества.
Но более качественно изучать Python лучше в высшем учебном заведении с уже хорошо отработанной методикой преподавания программирования. Хорошему программисту можно быстро перейти с одного языка программирования на другой за короткое время.
Python для начинающих
Где перспективно и адекватно использовать Python
В прошлой статье мы уже обсудили с вами причины, по которой Python нельзя назвать идеальным языком для новичков, хотя на том же Хабре бытует мнение, что Python – это выбор номер один и вообще топчик.
В этой статье мы с вами обсудим тот перечень направлений Питона, который я выделяю наиболее перспективными для приложения своих сил и времени для молодых специалистов. Данный вывод делается на основе моего анализа – изучение областей и инструментов питона и сравнивать их эффективность с аналогами на других платформах.
Что ты можешь сделать на Питоне
Хотя питон является языком общего назначения, и как говорится, все двери перед тобой открыты, на самом деле использование языка сильно ограничивается теми инструментами и технологиями, которые были в нем разработаны в ходе эволюционной борьбы с другими технологиями. Поэтому приступаем к обзору.
Микроконтроллеры (весьма сомнительно)
Хотя Андрей Власовских на прошедшем PYCON Russia 2017 в своей фирменной манере с энтузиазмом рассказывал о том, как программировать микроконтроллеры на таком инструменте, как MicroPython, а Кирилл Борисов даже предлагал изучить некоторую зарубежную литературу, ситуация в общем никакая.
Список микроконтроллеров, которые поддерживаются Python, стремится к нулю, коммерческая эффективность и наличие предложений по работе практическая нулевая. С учетом того, что есть более традиционные способы инструменты программирования, пока какая-то большая компания не вложится в этом направление, тут делать нечего.
Девопс (адекватно)
Анализ рынка показывает, что примерно треть всех вакансий, где упоминается Python, относятся к сфере DevOpsa. Однако Python идет не основным инструментом, а той технологией, которую знать желательно. Это связано с тем, что Python практичности полностью сместил Perl для Linux, и неплохо так подвинул Bash в области написания крупных скрипов и более крупных серверных компонентов. Также к этому добавляется то, что интерфейс многих тулзов принимает Python в качестве языка сценариев.
Если вы хотите развиваться в сфере Девопса, то знание Питон вам будет большим плюсом, все остальные проходят эту сферу стороной.
Что касается коммерческой перспективы (стартапа) данного направления, то сложно представить человека, который бы смог написать и монетизировать какой-то инструмент, не имея опыта 5+ лет в области девопса.
Тестирование (адекватно)
Хотя главным инструментом автоматизации тестирования является кровавая Java, которая имеет огромный набор фреймворков и готовых решений, порой небольшие компании используют Python для полноценного тестирования, либо написания сценариев для тулзов, типа Яндекс.Танк с его BFG.
Практика показывает, что хотя Python может полноценно справиться с задачей тестирования, использование Java является более прямолинейным и надежным решением.
Но если говорить в общем, то адекватный специалист по тестированию должен одинаково хорошо использовать Python и Java для своей области.
Вакансий под тестирование примерно также треть от общей массы, часто в вакансиях указывают знание и Python и Java одновременно.
Desktop development (сомнительно)
В настоящий момент язык Python имеет 5 кросc-платформенных инструментов, которые позволяют писать «полноценные» приложения под Windows/Linux/Mac
Поэтому можно с уверенностью сказать, что писать коммерческий Desktop на питон – это весьма сомнительная затея, и компании этим редко занимаются (либо переписывают при первой же возможности, как это сделал DropBox).
Что касается внутренних инструментов, то использование небольших GUI-приложений применяется, но искать целенаправленно Desktop Python разработчиков не будут.
Кто же хочется заняться этой сферой более полно, прошу к Игорю Новикову, который нашел неплохой способ сшить Франкенштейна с помощью абстракционного слоя – ссылка
Mobile Development (весьма сомнительно)
Все плохо, в качестве pet проектов можно использовать Kivy, для реальной разработки весьма сомнительно, вакансий на Kivy нет.
Т.е. как, я лично разговаривал с рядом людей, которые имели свой веб-проект на Python и для захвата большой аудитории писали приложения на Kivy, и у них его даже использовали, но это имеет вид «Программист пишет то, на чем хочет».
Машинное обучение и Data science (адекватно и перспективно)
Это одна из самых хайповы областей современного IT-мира, где используется Python в качестве инструмента апробации. Python имеет ряд удобных библиотек машинного обучения и научных расчетов: Pandas, NumPy, SciPy, Scikit-Learn, которые позволяют достаточно быстро построить рабочие модели. И они на самом деле неплохо работают.
Что касается использования, то Python используется в качестве инструмента апробации, либо на небольших задачах. Если проект большой, то обычно модель пишут на Java/Scala/C++, а специалист по обучению уже выступает в качестве консультанта/аналитика.
Сложность этого направления заключается в том, что у вас должны быть высокие знания в области математики и статистики, практически всегда будет спрашиваться высшее технические, математическое образование.
По вакансиям все довольно неплохо, но в таких вакансиях требуется не знание Python, а ваша голова.
Тем, кто хочет быстренько пощупать данное направление, советую прочитать книгу: «Vvedenie_v_mashinnoe_obuchenie_s_pomoschyu_Python_-_A_Myuller_S_Gvido_2017» — есть на торрентах, читается быстро, представление дает хорошее.
Веб-скрапинг (возможно, но сомнительно)
Питон имеет три вещи, которые делают его весьма эффективными в области веб-скраппинга, бибиотеку Requests, beautifulsoup и АПИ для Selenium. Если сюда подключиться библиотеки для компьютерного зрения и Машинное обучение, то получаются весьма эффективные инструменты.
Проблема заключается в том, что вакансий в этой сфере мало, основные клиенты сидят на фрилансе, которые предлагают за фикс написать им скрипты парсинга для их говно-сайтов, спам-машин, и изредка генераторов отзывов.
Область интересная, но денег в ней мало.
Компьютерное зрение (сомнительно)
В питоне есть ряд инструментов, которые позволяют писать инструменты компьютерного зрения, они даже используются местами в коммерческих продуктах, либо в качестве компонентов, например, для веб-скраппинга. Однако Питон явно нельзя назвать подходящим инструментов, поэтому использование крайне ограничено, вакансий практически нет.
GameDev (сомнительно)
Практически в каждом обсуждении разработки игры на Python приводят в качестве примера eve online и WarGaming. Однако в первом случае используется stateless python, а во втором случае все ограничивается языком написания сценариев.
Что же касается реального использования, то у вас появляется три движка Kivy, PyGame, Panda3D, если первые два больше подходят для пет-проектов, то третий реально использовался на боевых проектах неплохого качества, правда эти проекты были 2004 года. Что как бы намекает, что использование проверенных движков на других языках типа Unity или Game Maker выглядит более убедительно.
Однако незаметно сюда крадется движок Ren’Py, который внезапно стал лучшим движков для написания визуальных романов (страдальческих историй для девочек), которые неплохо окупаются даже в рамках РФ. Серия «7 демонологов Петра Великого», тому доказательство.
Вакансий в GameDev для питона естественно нет, но деньги на «стартапе» поднять можно при должной сноровке. Но надежней взять другой язык и проверенные движки.
Веб-разработка (адекватно и перспективно)
Сила Python заключается в том, что он позволяет быстро разрабатывать комплексные веб-приложения, имеет огромное число качественных модулей, прекрасно подходит для сервисов статистики и аналитики (где, в общем, и идет для него большая часть вакансий). Данное направление занимает оставшуюся треть всех вакансий.
Отдельно хочется отметить написание ГИС сервисов на Python, которые хотя и имеют вполне адекватный инструментарий для работы с геоданными, но все же использование Java для этих целей выглядит перспективней.
Выводы об использовании питона
1) Что касается сферы девопса и тестирования, то Питон является ключевым инструментом профессии, который обязателен для каждого адекватного специалиста. Питон в данном случае не учат, к нему приходят по необходимости.
2) Наиболее перспективными выглядят сферы веб-разработки и машинного обучения (аналитики), которые явно выделяют питон на фоне его конкурентов в виде PHP и Ruby. И если вы хотите изучить питон, то вам желательно сосредоточится именно на этих сферах и не тратить свое время на что-то другое. Под это есть вакансии, на этом можно построить стартап.
3) Все остальные сферы, хотя и предлагают определенные инструменты для решения проблем, но перспективность использования этих инструментов выглядит весьма сомнительно. И главное, найти оплачиваемую работу на эти сферы практически невозможно.
3 самых важных сферы применения Python: возможности языка
Существует множество областей применения Python, но в некоторых он особенно хорош. Разбираемся, что же можно делать на этом ЯП.
Если вы собираетесь изучать Python или совсем недавно начали его учить, вы точно задумывались, что же можно на нем сделать. Вопрос не простой, так как этот язык используется во многих сферах.
Но можно выделить 3 самых популярных направления применения Python:
Каждое из них заслуживает отдельного рассмотрения.
Веб-разработка
Относительно недавно в веб-разработке стали очень популярны Python-фреймворки, такие как Django и Flask. Они облегчают процесс написания на языке Python кода серверной части приложений. Это тот код, который запускается на сервере, а не на устройствах и браузерах пользователей (frontend-код). Если вы не знакомы с отличиями backend- и frontend-разработки, вам будет интересна заметка в конце статьи.
Зачем нужен веб-фреймворк?
Фреймворки позволяют легко и быстро создать базовую логику бэкенда. Она включает в себя сопоставление разных URL-адресов с частями Python-кода, работу с базами данных, создание HTML-представлений для отображения на устройствах пользователя.
Какой Python-фреймворк выбрать?
Django и Flask – два самых популярных веб-фреймворка, созданных для языка Python. Новичку следует выбрать один из них.
В чем разница между Django и Flask?
Другими словами, Flask – это, возможно, лучший выбор для начинающего разработчика, так как он содержит меньше компонентов. Кроме того, его стоит выбрать, если необходима тонкая настройка проекта.
Flask из-за своей гибкости лучше подходит для создания REST API.
С другой стороны, если стоит задача сделать что-то просто и быстро, вероятно, стоит выбрать Django.
Data Science: машинное обучение, анализ данных и визуализация
Прежде всего, следует разобраться, что такое машинное обучение.
Предположим, что вы хотите разработать программу, которая будет автоматически определять, что изображено на картинке.
Например, предлагая ей это изображение, вы хотите, чтобы программа опознала собаку.
А здесь она должна увидеть стол.
Возможно, вы думаете, что для решения этой задачи можно просто написать код анализа изображения. Например, если на картинке много светло-коричневых пикселей, делаем вывод, что это собака.
Или вы можете научиться определять на изображении края и границы. Тогда картинка с большим количеством прямых границ, вероятно, окажется столом.
Однако это довольно сложный и непродуманный подход. Что делать, если на фотографии изображена белая собака без коричневых пятен? Или если на картинке круглый стол?
Здесь вступает в игру машинное обучение. Обычно оно реализует некоторый алгоритм, который позволяет автоматически обнаруживать знакомый шаблон среди входных данных.
Вы можете предложить алгоритму машинного обучения, скажем, 1000 изображений собаки и 1000 снимков столов. Он выучит разницу между этими объектами. Затем, когда вы дадите ему новую картинку со столом или собакой, он сможет определить, что именно на ней изображено.
Это очень похоже на то, как учатся маленькие дети. Каким именно образом они узнают, что одна вещь похожа на стол, а другая – на собаку? Из большого количества примеров.
Вы ведь не даете ребенку четкую инструкцию: «Если нечто пушистое и светло-каштановое, значит, это собака». Напротив, вы говорите: «Это собака. Это тоже собака. И это. А это стол. И это тоже стол».
Алгоритмы машинного обучения в основном работают сходным образом.
Эта технология может применяться:
Среди самых популярных алгоритмов машинного обучения, о которых вы, вероятно, слышали:
Любой из вышеперечисленных алгоритмов может быть использован для решения задачи с собаками и столами на изображениях.
Способы применения Python для машинного обучения
Существуют разные библиотеки и фреймворки для машинного обучения на Python. Две самые популярные – это scikit-learn и TensorFlow.
Новичкам в машинном обучении лучше начать со scikit-learn. Более опытным разработчикам, которые столкнулись с проблемами эффективности, стоит присмотреться к TensorFlow.
Как изучать машинное обучение?
Для ознакомления с основами предмета прекрасно подойдут курсы Стэнфорда или Калтеха (Калифорнийский технический институт). Следует отметить, что для понимания материала требуются базовые знания в области математического анализа и линейной алгебры.
Затем можно переходить к практике на платформе Kaggle. Это сайт, на котором исследователи в области data science создают различные алгоритмы машинного обучения для решения реальных проблем. Победители получают солидные денежные призы. У них также есть отличные учебники для начинающих.
Анализ и визуализация данных
Чтобы понять, о чем идет речь, следует обратиться к простому примеру.
Предположим, вы работаете аналитиком данных в компании, которая продает товары через Интернет. Вы можете получить такую гистограмму:
Из этого графика можно понять, что в это воскресенье мужчины купили более 400 единиц продукта, а женщины – около 350. Ваша задача, как аналитика, придумать несколько возможных объяснений такой разницы.
Один из очевидных вариантов заключается в том, что этот продукт больше популярен у мужчин, чем у женщин. Другое объяснение может быть связано со слишком маленьким размером выборки, который привел к недостоверным результатам. Третий вариант – мужчины по какой-либо причине склонны покупать продукт по воскресеньям.
Чтобы разобраться, в чем дело, вы можете просмотреть данные за всю неделю и составить новый график.
Из схемы видно, что различие довольно устойчиво и проявляется не только по воскресеньям.
Можно сделать вывод, что наиболее убедительным объяснением является принципиально большая заинтересованность мужчин в этом продукте.
С другой стороны, график за неделю может выглядеть вот так.
Как здесь объяснить большую разницу в продажах в воскресенье?
Вы можете предположить, что мужчины в конце недели почему-то склонны покупать больше. Или это может оказаться простым совпадением.
Это упрощенный пример того, как выглядит реальный анализ данных.
Настоящие аналитики, например, в Google или Microsoft, делают то же самое, только их работа более сложная и комплексная.
Они используют язык запросов SQL, чтобы извлекать данные из баз. Затем для анализа и визуализации применяются специальные инструменты, например, Mathplotlib (для Python) или D3.js (для JavaScript).
Способы применения Python для анализа и визуализации данных
Одна из самых популярных библиотек для визуализации – Mathplotlib.
Новичкам следует начинать обучение с нее по двум причинам:
Как изучать анализ данных на Python?
Сначала следует изучить основы. Вот хорошее видео, посвященное данной теме:
Закрепить знания поможет курс по визуализации данных на Pluralsight. Получить его бесплатно можно, подписавшись на 10-дневную пробную версию.
Чтобы разобраться в основах статистики, пройдите курсы на Coursera и Khan Academy.
Автоматизация процессов
Одна из самых популярных сфер применения Python – это написание небольших скриптов для автоматизации различных рабочих операций и процессов.
В качестве примера можно привести систему обработки электронной почты. Для сбора статистики и анализа данных требуется подсчитывать количество входящих писем, содержащих определенные ключевые слова. Это можно делать вручную, или же написать простой скрипт, который все посчитает сам.
Есть несколько причин применения Python для задач автоматизации:
Встроенные приложения
Python является самым популярным языком программирования для Raspberry Pi.
Python и игры
Несмотря на то, что существует библиотека PyGame, популярность применения Python для создания игр невелика. Для серьезных проектов он не подходит.
Чтобы создавать хорошие мультиплатформенные игры, стоит присмотреться к одному из самых популярных движков Unity, работающем с языком C#.
Десктопные приложения
Вы можете создать парочку, используя Tkinter, но это не самое популярное решение.
Для этой задачи лучше использовать такие языки, как Java, C# и C++.
С недавних пор некоторые компании начали использовать для создания настольных приложений JavaScript. Например, десктопное приложение Slack было создано с помощью JavaScript-фреймворка Electron.
Преимущество написания настольных приложений на JavaScript заключается в том, что можно повторно использовать код веб-версии.
Python 3 или Python 2
Python 3 – это более современный и популярный выбор.
Пояснение о backend- и frontend-коде
Предположим, вы хотите сделать нечто, напоминающее Инстаграм.
Вам необходимо создать frontend-код для каждого типа устройств, который должен поддерживаться. Для этого могут использоваться разные языки программирования, например:
На каждом типе устройства будет запускаться свой набор кода. Он определит формат приложения, его внешний вид и т.д.
Однако вам требуется хранить личные данные и фотографии. Вы хотите использовать для этого свой сервер, а не устройства пользователей, чтобы подписчики могли просматривать фотографии друг друга.
Для решения этой задачи потребуется backend-код (server-side). Он будет выполнять следующие операции: