Переходим к следующей части. Познакомимся с библиотекой Pandas, которая предоставляет очень интересные для нас структуры данных - это Series и DataFrame. Для начала, что же такое Series? Series - это одномерный массив объектов, у которого имеется еще и индекс. Вы помните, когда я рассказывал про R, я настоятельно рекомендовал именовать признаки. Также можно было именовать и строки. Тут происходит то же самое - у нас есть массив с именованными значениями., как он создается? Можем сделать из двух массивов с помощью функции Series один элемент. Видно, что на втором примере мы берем массив [4, 7, -5, 3] и массив индексов ['d', 'b', 'a', 'c'] и получаем следующую структуру данных. Далее к данной структуре можно обращаться по индексу, например, выбирая индекс 'a' мы получаем -5. Также можно делать присвоение по индексу, вот элементу с индексом 'd' присваивается 6, а также следует помнить, что операции над массивом сохраняют связь индекса и значения. Например, выполняя фильтрацию по объектам больше нуля видно, что индексы сохранились, умножая на 2 весь массив видно, индексы не изменились и возведение в экспоненту также не меняет индекса.
Индексы и сами данные имеют атрибут имя, то есть, например, весь наш объект Series имеет имя name = population, а также мы можем всему списку индексов дать название state, тогда у нас появится более осмысленная структура данных, которая представлена на примере. Также можно изменить значение индексов просто передав новые индексы в массиве, как показано на втором примере.
Теперь перейдем к DataFrame. Как я уже говорил, DataFrame - это очень удобное представление таблицы «объект-свойство». Ее можно составить из словаря, и это далеко не единственный способ конструирования объекта DataFrame. Видно, что у нас несколько есть признаков state, year и pop, которые собираются в одну таблицу «объект-свойство». Можно также указать, в какой последовательности будут идти эти признаки. Это можно сделать с помощью массива и параметра columns, если же мы укажем какой-нибудь признак в этом массиве, который не существует, он будет заполнен элементами non. Доступ к столбцам может быть получен, как по индексам, например в квадратных скобках, к строкам абсолютно идентично, только нужно использовать свойство ix. Также можно через точку просто указать имя признака и получить срез по этому признаку.
Так, как все операции в Python сейчас у нас работают, как вектора, то есть с векторами поэлементно всему столбцу можем присвоить какое-то значение или другой вектор, как показано на первом примере. На первом примере мы присваиваем какое-то константное значение, на втором примере мы присваиваем вектор от 0 до 5. Теперь приведем пример того, как происходит кластеризация в Python, чтобы показать, что это не сложнее чем в R. Для этого подготовим 3 dataset, это точки с нормальным распределением, но у каждой свое среднее значение, соответственно они будут располагаться в разных областях признакового пространства, затем объединим их в один dataset и запустим алгоритм K-Means на них, указав, что мы хотим 3 кластера, так как мы заведомо знаем, что у нас 3 dataset было использовано. Следует отметить, что за реализацию алгоритма K-Means отвечает библиотека mlpy. Как видно, у нас в одну строчку записывается применение алгоритма, ничуть не сложнее, чем это было сделано в R. Для визуализации мы используем библиотеку matplotlib, которая имеет свой плод, очень удобный, его можно так же легко настроить. Результат работы представлен на этом графике.
Какие бы хотелось слова и выводы сделать по поводу данной очень вводной лекции? В первую очередь акцент ставился на том, что несмотря на то, что R сейчас и занимает лидирующие позиции, однако мы видим, что в Python все так же просто и легко исполняется, как и в R, единственное, в чем Python уступает R - это в скорости исполнения программ, если мы пишем какие-то свои собственные скрипты, и в количестве библиотек расширения. Тем не менее, уже можно полностью уверенно заявлять, что все основные алгоритмы, основные методы, они реализованы и для Python тоже. Более того, наблюдается тенденция, что люди переходят с R на Python и не многие возвращаются обратно на R. В первую очередь, мое личное мнение, это обусловлено тем, что язык Python более хорошо продуман и построен чем язык R. R - это язык, больше, инструмент, на котором удобно писать скрипты обработки данных, а Python - это язык, на котором можно делать и коммерческие решения в том числе.
В окончании цикла этих лекций я хотел бы вас призвать самим лично попробовать все инструменты, которые были здесь описаны, в том числе R и Python, и самим выбрать для себя, что вы хотите использовать, что вам больше подходит. Спасибо за внимание.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.