Python уже давно привлекает специалистов по анализу данных. Чем больше я общаюсь с ресурсами, литературой, курсами, тренингами и людьми в области Data Science, тем более глубокое знание Python становится хорошим преимуществом. Когда я начал совершенствовать свои навыки работы с Python, у меня был список библиотек Python, о которых я должен был знать. Несколько мгновений спустя…
Python уже давно привлекает специалистов по обработке данных.😀
Люди в Data Science определенно знают о библиотеках Python, которые можно использовать в Data Science, но когда нас просят на собеседовании назвать их или назвать их функции, мы часто путаемся или, возможно, не помним более 5 библиотек (это случилось со мной :/).
Сегодня я подготовил список из 10 библиотек Python, которые помогают в Data Science и ее периферии, когда их использовать, каковы их существенные особенности и преимущества.
В этой статье я кратко описал 10 самых полезных библиотек Python для data scientist’ов и инженеров, основываясь на своем недавнем опыте и исследованиях.
1. Pandas
Pandas — это пакет Python с открытым исходным кодом, который предоставляет высокопроизводительные, простые в использовании структуры данных и инструменты анализа данных для меченых данных на языке программирования Python. Pandas расшифровывается как Python Data Analysis Library. Кто когда-либо знал об этом?
Когда использовать? Pandas — это идеальный инструмент для работы с данными. Он предназначен для быстрого и простого манипулирования данными, чтения, агрегирования и визуализации.
Pandas берет данные из файла CSV или TSV или базы данных SQL и создает объект Python со строками и столбцами, называемый рамкой данных. Каркас данных очень похож на таблицу в статистическом программном обеспечении, например, Excel или SPSS.
Что вы можете делать с помощью Pandas?
- Индексирование, манипулирование, переименование, сортировка, объединение фреймов данных
- Обновление, добавление, удаление столбцов из фрейма данных
- Вменять отсутствующие файлы, обрабатывать отсутствующие данные или NANs
- Построение данных с помощью гистограммы или квадратной диаграммы
Это делает Pandas базовой библиотекой при изучении Python для Data Science.
2. NumPy
Один из самых фундаментальных пакетов в Python, NumPy — это пакет обработки массивов общего назначения. Он предоставляет высокопроизводительные объекты многомерных массивов и инструменты для работы с массивами. NumPy — это эффективный контейнер общих многомерных данных.
Основным объектом NumPy является однородный многомерный массив. Он представляет собой таблицу элементов или чисел одного типа данных, индексируемых кортежем целых положительных чисел. В NumPy размеры называются осями, а количество осей — рангом. Класс массивов NumPy называется ndarray aka array.
Когда использовать? NumPy используется для обработки массивов, хранящих значения одного типа данных. NumPy облегчает математические операции над массивами и их векторизацию. Это значительно повышает производительность и соответственно ускоряет время выполнения.
Что вы можете делать с помощью NumPy?
- Основные операции с массивами: сложение, умножение, разрезание, сплющивание, изменение формы, индексирование массивов
- Расширенные операции с массивами: стекирование массивов, разбиение на секции, трансляция массивов
- Работа с DateTime или линейной алгеброй
- Базовая нарезка и расширенная индексация в NumPy Python
3. SciPy
Библиотека SciPy — это один из основных пакетов, составляющих стек SciPy. Существует разница между стеком SciPy и библиотекой SciPy. SciPy основывается на объекте массива NumPy и является частью стека, который включает такие инструменты, как Matplotlib, Pandas и SymPy с дополнительными инструментами,
Библиотека SciPy содержит модули для эффективных математических процедур, таких как линейная алгебра, интерполяция, оптимизация, интегрирование и статистика. Основная функциональность библиотеки SciPy построена на NumPy и его массивах. SciPy в значительной степени использует NumPy.
Когда использовать? SciPy использует массивы в качестве основной структуры данных. Он имеет различные модули для выполнения общих задач научного программирования, таких как линейная алгебра, интегрирование, вычисления, обыкновенные дифференциальные уравнения и обработка сигналов.
4. Matplotlib
Это, несомненно, моя любимая и квинтэссенция библиотеки Python. Вы можете создавать истории с помощью данных, визуализированных с помощью Matplotlib. Еще одна библиотека из стека SciPy, Matplotlib строит двумерные графики.
Когда использовать? Matplotlib — это библиотека построения графиков для Python, которая предоставляет объектно-ориентированный API для встраивания графиков в приложения. Она представляет собой близкое подобие MATLAB, встроенного в язык программирования Python.
Что вы можете делать с помощью Matplotlib?
Гистограммы, столбчатые диаграммы, диаграммы рассеяния, диаграммы площадей и круговые диаграммы — Matplotlib может изобразить широкий спектр визуализаций. С помощью Matplotlib вы можете создавать любые визуализации, приложив немного усилий и изучив возможности визуализации:
- Графики линий
- Графики разброса
- Площадные графики
- Гистограммы и гистограммы
- Круговые диаграммы
- Графики стеблей
- Контурные диаграммы
- Колчанные диаграммы
- Спектрограммы
Matplotlib также облегчает работу с метками, сетками, легендами и некоторыми другими сущностями форматирования в Matplotlib. В общем, все, что можно нарисовать!
5. Seaborn
Итак, когда вы читаете официальную документацию по Seaborn, он определяется как библиотека визуализации данных на основе Matplotlib, которая предоставляет высокоуровневый интерфейс для построения привлекательных и информативных статистических графиков. Проще говоря, Seaborn — это расширение Matplotlib с расширенными возможностями.
Итак, в чем же разница между Matplotlib и Seaborn? Matplotlib используется для базового построения графиков: столбики, пироги, линии, диаграммы рассеяния и прочее, в то время как seaborn предоставляет множество моделей визуализации с менее сложным и меньшим синтаксисом.
Что вы можете сделать с помощью Seaborn?
- Определять взаимосвязи между несколькими переменными (корреляция)
- Наблюдать категориальные переменные для получения совокупной статистики
- Анализировать одно- или двумерные распределения и сравнивать их между различными подмножествами данных
- Строить модели линейной регрессии для зависимых переменных
- Предоставление высокоуровневых абстракций, многоплоскостные сетки
Seaborn является отличным помощником для библиотек визуализации R, таких как corrplot и ggplot.
6. Scikit Learn
Представленный миру в рамках проекта Google Summer of Code, Scikit Learn — это надежная библиотека машинного обучения для Python. В ней представлены такие алгоритмы ML, как SVM, случайные леса, кластеризация k-means, спектральная кластеризация, средний сдвиг, перекрестная валидация и многое другое… Даже NumPy, SciPy и связанные с ними научные операции поддерживаются Scikit Learn. Scikit Learn является частью стека SciPy.
Когда использовать? Scikit-learn предоставляет ряд алгоритмов контролируемого и неконтролируемого обучения через согласованный интерфейс на языке Python. Модели контролируемого обучения, такие как Naive Bayes, группировка немеченых данных, такие как KMeans, — Scikit Learn будет вашим помощником.
Что можно сделать с помощью Scikit Learn?
Классификация: Обнаружение спама, распознавание изображений
Кластеризация: реакция на лекарство, цена акций
Регрессия: Сегментация клиентов, группировка результатов экспериментов
Снижение размерности: Визуализация, Повышение эффективности
Выбор модели: Повышение точности за счет настройки параметров
Предварительная обработка: Подготовка входных данных в виде текста для обработки алгоритмами машинного обучения.
Scikit Learn фокусируется на моделировании данных, а не на манипулировании ими. У нас есть NumPy и Pandas для обобщения и манипулирования данными.
7. TensorFlow
В 2017 году я получил USB-порт TensorFlow в качестве благодарности за то, что был замечательным докладчиком на мероприятии Google WTM, хаха. На USB была официальная документация по TensorFlow. Не имея на тот момент никакого представления о том, что такое TensorFlow, я погуглил.
TensorFlow — это библиотека искусственного интеллекта, которая помогает разработчикам создавать крупномасштабные нейронные сети с большим количеством уровней, используя графы потока данных. TensorFlow также облегчает построение моделей глубокого обучения, продвигает новейшие достижения в области ML/AI и позволяет легко развертывать приложения с поддержкой ML.
Среди всех библиотек TensorFlow является одним из самых развитых веб-сайтов. Такие гиганты, как Google, Coca-Cola, Airbnb, Twitter, Intel, DeepMind, все используют TensorFlow!
Когда использовать? TensorFlow весьма эффективен, когда речь идет о классификации, восприятии, понимании, обнаружении, предсказании и создании данных.
Что делать с TensorFlow?
- Распознавание голоса/звука — IoT, автомобили, безопасность, UX/UI, телекоммуникации
- Анализ настроений — в основном для CRM или CX
- Приложения на основе текста — обнаружение угроз, Google Translate, интеллектуальный ответ в Gmail.
- Распознавание лиц — Deep Face от Facebook, маркировка фотографий, интеллектуальная разблокировка
- Временные ряды — рекомендации от Amazon, Google и Netflix
- Обнаружение видео — обнаружение движения, обнаружение угроз в реальном времени в играх, системах безопасности, аэропортах.
8. Keras
Keras — это высокоуровневый API TensorFlow для построения и обучения кода глубоких нейронных сетей. Это библиотека нейронных сетей с открытым исходным кодом на языке Python. С Keras статистическое моделирование, работа с изображениями и текстом становятся намного проще благодаря упрощенному кодированию для глубокого обучения.
В чем же все-таки разница между Keras и TensorFlow?
Keras — это нейросетевая библиотека Python, а TensorFlow — библиотека с открытым исходным кодом для решения различных задач машинного обучения. TensorFlow предоставляет как высокоуровневые, так и низкоуровневые API, в то время как Keras предоставляет только высокоуровневые API. Keras создан для Python, что делает его более удобным для пользователя, модульным и композитным, чем TensorFlow.
Что вы можете делать с помощью Keras?
- Определить процентную точность
- Вычислить функцию потерь
- Создание пользовательских слоев функций
- Встроенная обработка данных и изображений
- Пишите функции с повторяющимися блоками кода: глубиной 20, 50, 100 слоев
9. Statsmodels
Когда я впервые изучал R, проведение статистических тестов и исследование статистических данных казалось наиболее простым в R, и я избегал Python для статистического анализа, пока не изучил Statsmodels или Python.
Когда использовать? Statsmodels — лучший пакет Python, который обеспечивает простые вычисления для описательной статистики, а также оценки и выводы для статистических моделей.
Что делать со Statsmodels (статмоделями)?
- Линейная регрессия
- Корреляция
- Обыкновенные наименьшие квадраты (OLS) для экономиста в вас!
- Анализ выживаемости
- Обобщенные линейные модели и Байесовская модель
- Одномерный и двумерный анализ, проверка гипотез (в общем, все, что может R!).
10. Plotly
Plotly — это квинтэссенция библиотеки построения графиков для Python. Пользователи могут импортировать, копировать, вставлять или передавать данные, которые необходимо проанализировать и визуализировать. Plotly предлагает Python в песочнице (что-то, где вы можете запустить Python, который ограничен в том, что он может делать) Сейчас мне было трудно понять, что такое песочница, но я точно знаю, что Plotly делает это легко!?
Когда использовать? Вы можете использовать Plotly, если вам нужно создавать и отображать фигуры, обновлять фигуры, наводить курсор на текст для получения подробной информации. Plotly также имеет дополнительную функцию отправки данных на облачные серверы. Это интересно!
Что вы можете делать с Plotly?
Библиотека графиков Plotly имеет широкий спектр графиков, которые вы можете построить:
- Основные графики: Линейные, Круговые, Разбросанные, Пузырьковые, Точечные,
- Ганта, Вспышка солнца, Трехмерные, Санки, Диаграммы заполненных областей.
- Статистические и сиборновые стили: Ошибка, коробка, гистограммы, фасетные и решетчатые графики, древовидные графики, скрипичные графики, линии тренда
- Научные диаграммы: Контурные, троичные, логарифмические, колчанные, ковровые, радарные, тепловые карты, карты Виндроуз и полярные графики
- Финансовые диаграммы
- Карты
- Подплоты
- Преобразования
- Взаимодействие с виджетами Jupyter
Я же говорил вам, что Plotly — это квинтэссенция библиотеки графиков. Подумайте о визуализации, и Plotly сможет это сделать!
11. Spacy
SpaCy — это библиотека с открытым исходным кодом, используемая для продвинутого NLP для Python и Cython (язык программирования Python для придания C-подобных ощущений и производительности с кодом Python, плюс синтаксис, вдохновленный C).
12. Bokeh
Bokeh — это библиотека Python, которую я хотел бы назвать библиотекой для интерактивной визуализации данных. При наличии таких инструментов, как Tableau, QlikView или PowerBI, зачем нам нужен Bokeh? Во-первых, Bokeh позволяет быстро строить сложные статистические графики с помощью простых команд. Он поддерживает HTML, блокнот или вывод на сервер. Во-вторых, визуализацию Bokeh можно интегрировать в приложения на Flask и Django или визуализации, написанные на других библиотеках, таких как matplotlib, seaborn, ggplot.
13. Gensim
Gensim, на мой взгляд, сильно отличается от того, что мы видели до сих пор. Он автоматически извлекает семантические темы из документов с высокой эффективностью и без особых усилий. Алгоритмы Gensim являются несамостоятельными, что означает, что не требуется никакого человеческого ввода — просто обычные текстовые документы, а затем выполняется извлечение.
14. NLTK
NLTK (Natural Language Toolkit) в основном работает с человеческим языком, а не с компьютерным для применения обработки естественного языка (NLP). Он содержит библиотеки для обработки текста, с помощью которых можно выполнять токенизацию, синтаксический анализ, классификацию, стебли, тегирование и семантическое обоснование данных. Это может показаться повторением того, что может делать эта библиотека, но каждая библиотека в Python была написана для решения определенной задачи.