C помощью данных в наше время можно творить такие фокусы, что сам Гарри Гудини бы удивлённо присвистнул. Перфокарты, FIDO и 640 кбайт оперативной памяти, которой, как известно, должно было хватить на всех, теперь в прошлом. Объем информации сейчас настолько велик, что рынку потребовался отдельный человек, который будет копаться во всех этих массивах — аналитик данных.
Дата сайенс сейчас на пике своей популярности неспроста — количество сфер, где нужен анализ данных растёт как на дрожжах: разработка, медицина, девелопмент, образование, ритейл, государственные сервисы. Поэтому вопрос о востребованности Data Analyst сейчас даже не стоит.
Но самое приятное, что ассемблер для этого изучать вовсе не нужно. Профессию аналитик данных можно освоить прямо с нуля. Сложно, но можно.
Google Colab
Для начала нужно выбрать среду разработки (IDE). Кто уже программировал на Питоне наверняка знаком с PyCharm. Однако, для написания кода можно не использовать толстый клиент, а пользоваться инструментом от Google — Colaboratory. С помощью этой облачной среды разработки можно выполнять код питона прямо в браузере.
Каждый отдельный файл — блокнот (правильней и привычней говорить jupyter-ноутбук) состоит из двух типов ячеек. В одной текст, в другой код. Файлы ноутбуков имеют расширение ipynb. Давайте попробуем с этим поработать. Открываем колаб и создаем ноутбук. В левом верхнем углу мы видим две кнопки — одна создаёт код, другая — текст.
По негласной традиции, первое, что пишут на всех языках программирование — хэлло ворлд. Т.е. верхняя ячейка у нас с обычным текстом, а нижняя уже непосредственно с кодом, который можно запустить на выполнение (чтобы не тянуться к иконке Play, можно нажимать CTRL+ENTER)
Если мы просто напишем print (Hello World) без кавычек, то питон обязательно ругнётся — нет такой переменной (name ‘Hello’ is not defined), мол, не было таких переменных в коде, друг. Это всё потому, что кавычки (либо одинарные, либо двойные) указывают на принадлежность типа данных — строка. Если их нет, то питон думает, что это название переменной, которую мы не объявляли.
Кстати, одним из плюсом Google Colab является то, что писать функцию print, в принципе, не обязательно писать, чтобы вывести что-либо на печать (jupyter показывает нам последнее значение, лежащее в буфере ячейки). В том же PyCharm такое не прокатит
Но стоит помнить, что программа покажет нам только последнее значение, лежащее в буфере ячейки
Также у функции Print есть параметры, которыми можно задать значение видимым нам аргументам. Например, параметр sep (separator). По-простому — разделитель. Т.е. мы можем задать какими символами у нас будут разделены строки в результатах вывода
Переменные и типы данных в них
Переменные в питоне — это контейнеры с какой-либо информацией, с каким-то типом данных. Если нам нужна эта информация в нашей дальнейшей работе, то мы ссылаемся на эту переменную в коде. Обратите внимание, что названия переменных — регистрозависимые
Есть два общепринятых способа написания (наименования) переменных в коде — ВерблюжийРегистр (CamelCase) и змейный_регистр (Snake_case). Оба имеют право на существование, но в питоне верблюжий регистр обычно используется для названия классов
Целые числа (Int, Integer)
Цельночисленные переменные или же целые числа (Int) — любое число без дробной части. Чтобы убедиться, что у нас именно целое число, можно с помощью функции type, которая вернёт нам тип данных в переменной или если мы просто подставим ей любое число. Напоминаем, что отрицательное число — это тоже целое число
Для целых чисел действуют правила сложения, вычитания, умножения и возведения в степень.
С делением чуть сложнее. Деление в питоне бывает два типа — на целую часть и с остатком. Соответственно, можно найти остаток от деления
Данные математические операции не работают для разных типов данных (строки и числа, например), но можно привести строку к целому числу, если в данной строке нет лишних символов (букв)
Закрепим знания задачками (посмотреть их можно в ноутбуке — ссылка для скачивания в конце статьи)
Логические переменные (boolean)
Логические переменные могут быть всего два вида — истина (True) или ложь (False). Тип данных в таком случае будет bool. В основном они используются в циклах — для проверки условий остановки выполнения этого самого цикла (т.е. когда программа понимает, что условие выполнено и цикл можно стопнуть).
Преобразование из других типов данных здесь тоже имеет место быть. Проверка логических условий в случае с целыми числами формируется так: 0 — False, всё остальное — True. В случае со строками — если строка не пустая — то это True, если пустая — False.
Обратите внимание, что тип данных None тоже будет False. Если есть необходимость конвертировать логические переменные в целые числа, то тут всё просто 1 — True, False — 0
Логические выражения
Логические переменные позволяют нам получать результат в случае использования логических выражений, т.е. проверять истинно ли это самое выражение или оно ложно. В логических выражениях используются операторы сравнения:
- == (равно)
- != (не равно)
- > (больше)
- < (меньше)
- >= (больше или равно)
- <= (меньше или равно)
Существуют также специальные логические операторы:
- Логическое И (AND) — выражение истинно, только когда обе части истинны, иначе оно ложно. Так же называется логическим умножением
- Логическое ИЛИ (or) — выражение ложно, только когда обе части ложны, иначе оно истинно. Так же называется логическим сложением
- Логическое отрицание (not) — превращает True в False или наоборот
Если у нас несколько операторов в выражении, то порядок выполнения такой же как в математике — сначала «умножение» (AND), потом «сложение» (OR)
Самое интересное, что строки тоже можно сравнивать. Здесь питон сравнивает не больше/меньше, а раньше/позже. Т.е. в примере ниже выражение ложно, просто потому, что символ R дальше, чем символ B в кодировке (не в алфавите, это важно), поэтому вторая строка «больше», а значит результатом будет False
Задачка на закрепление внутри ноутбука
Вещественные числа, числа с плавающей точкой (float)
Или, проще говоря, числа с дробной частью. Целые и вещественные числа можно легко складывать и умножать между собой
Проблемой может стать возведение в степень, когда результат, а именно число после запятой может быть слишком большим
Вещественные числа можно и придётся округлять. Здесь нам пригодится сторонние модули, поэтому импортируем дополнительную библиотеку math
Функция floor округляет до ближайшего меньшего целого числа. Ceil округляет до ближайшего большего числа
Интересней работает, встроенная в питон, функция round. Она округляет уже более менее «по-человечески», но всё равно есть нюанс
Как мы видим, если у нас вещественное число с частью 0.5, то питон по каким-то причинам округляет это число до ближайшего чётного (!) числа