Обновление 2021 года: эта статья была опубликована давно. Некоторые из упомянутых здесь библиотек уже не могут быть менее известными.

Вот еще одна статья, которая могла бы стать отличным дополнением к этой статье:



Python - потрясающий язык. Это один из самых быстрорастущих языков программирования в мире. Он снова и снова доказывал свою полезность как на должностях разработчиков, так и на должностях в области науки о данных в различных отраслях. Вся экосистема Python и его библиотек делает его подходящим выбором для пользователей (начинающих и продвинутых) во всем мире. Одна из причин его успеха и популярности - наличие набора надежных библиотек, которые делают его таким динамичным и быстрым.

В этой статье мы рассмотрим некоторые библиотеки Python для задач науки о данных, отличные от широко используемых, таких как pandas, scikit-learn, matplotlib и т. Д.. Хотя библиотеки, такие как pandas и scikit-learn, являются именами по умолчанию, которые приходят на ум для задач машинного обучения, всегда полезно узнать о других предложениях Python в этой области.

Wget

Извлечение данных, особенно из Интернета, - одна из жизненно важных задач специалиста по данным . Wget - это бесплатная утилита для неинтерактивной загрузки файлов из Интернета. Он поддерживает протоколы HTTP, HTTPS и FTP, а также поиск через HTTP-прокси. Поскольку он не интерактивен, он может работать в фоновом режиме, даже если пользователь не вошел в систему. Поэтому в следующий раз, когда вы захотите загрузить веб-сайт или все изображения со страницы, wget будет там, чтобы помочь вам.

Установка :

$ pip install wget

Пример:

import wget
url = 'https://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
'razorback.mp3'

"Маятник"

Для тех, кто расстраивается при работе с датой времени в Python, Pendulum здесь для вас. Это пакет Python для упрощения манипуляций с датами. Это прямая замена для собственного класса Python. Обратитесь к документации для более подробной работы.

Установка:

$ pip install pendulum

Пример:

import pendulum
dt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')
print(dt_vancouver.diff(dt_toronto).in_hours())
3

Несбалансированное обучение

Это факт, что большинство алгоритмов классификации работают лучше всего, когда количество выборок в каждом классе почти одинаково, т. Е. Сбалансировано. Но реальные случаи полны несбалансированных наборов данных, которые могут иметь отношение к фазе обучения и последующему прогнозированию алгоритмов машинного обучения. К счастью, эта библиотека была создана для решения этой проблемы. Он совместим с scikit-learn и является частью проектов scikit-learn-contrib. Попробуйте в следующий раз, когда столкнетесь с несбалансированными наборами данных.

Установка:

pip install -U imbalanced-learn
# or
conda install -c conda-forge imbalanced-learn

Пример:

Для использования и примеров обратитесь к документации.

FlashText

Очистка текстовых данных во время задач НЛП часто требует замены ключевых слов в предложениях или извлечения ключевых слов из предложений. Обычно такие операции обычно выполняются с помощью регулярных выражений, но они могут стать громоздкими, если число искомых терминов исчисляется тысячами. Модуль Python FlashText, основанный на алгоритме FlashText, представляет собой подходящую альтернативу для таких ситуаций. Лучшая часть FlashText заключается в том, что среда выполнения одинакова независимо от количества поисковых запросов. Вы можете прочитать больше об этом здесь".

Установка:

$ pip install flashtext

Пример:

Извлечь ключевые слова

from flashtext import KeywordProcessor
keyword_processor = KeywordProcessor()
# keyword_processor.add_keyword(<unclean name>, <standardised name>)
keyword_processor.add_keyword('Big Apple', 'New York')
keyword_processor.add_keyword('Bay Area')
keywords_found = keyword_processor.extract_keywords('I love Big Apple and Bay Area.')
keywords_found
['New York', 'Bay Area']

Заменить ключевые слова

keyword_processor.add_keyword('New Delhi', 'NCR region')
new_sentence = keyword_processor.replace_keywords('I love Big Apple and new delhi.')
new_sentence
'I love New York and NCR region.'

Дополнительные примеры использования см. В официальной документации.

Fuzzywuzzy

Название действительно звучит странно, но fuzzywuzzy - очень полезная библиотека, когда дело доходит до сопоставления строк. Можно быстро реализовать такие операции, как отношения сравнения строк, отношения токенов и т. Д. Это также удобно для сопоставления записей, которые хранятся в разных базах данных.

Установка:

$ pip install fuzzywuzzy

Пример:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process
# Simple Ratio
fuzz.ratio("this is a test", "this is a test!")
97
# Partial Ratio
fuzz.partial_ratio("this is a test", "this is a test!")
 100

Более интересные примеры можно найти в их репозитории на GitHub.

PyFlux

Анализ временных рядов - одна из наиболее часто встречающихся проблем в области машинного обучения. PyFlux - это библиотека с открытым исходным кодом на Python, специально созданная для работы с проблемами временных рядов. Библиотека содержит отличный набор современных моделей временных рядов, включая, помимо прочего, модели ARIMA, GARCH, и VAR. Короче говоря, PyFlux предлагает вероятностный подход к моделированию временных рядов. Стоит попробовать.

Установка

pip install pyflux

Пример

Пожалуйста, обратитесь к документации для использования и примеров.

Ipyvolume

Сообщение результатов - важный аспект Data Science. Возможность визуализировать результаты дает значительное преимущество. IPyvolume - это библиотека Python для визуализации трехмерных объемов и глифов (например, трехмерных точечных диаграмм) в записной книжке Jupyter с минимальными настройками и усилиями. Однако в настоящее время он находится на стадии, предшествующей 1.0. Хорошей аналогией будет что-то вроде этого: volshow IPyvolume относится к трехмерным массивам, как imshow в matplotlib относится к 2-мерным массивам. Вы можете прочитать больше об этом здесь".

Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume

Пример

  • Анимация

  • Объемная визуализация

"Бросаться"

Dash - это продуктивная среда Python для создания веб-приложений. Он написан поверх Flask, Plotly.js и React.js и связывает современные элементы пользовательского интерфейса, такие как раскрывающиеся списки, ползунки и графики, с вашим аналитическим кодом Python без необходимости использования javascript. Dash отлично подходит для создания приложений для визуализации данных. Затем эти приложения можно отобразить в веб-браузере. Руководство пользователя находится здесь.

Установка

pip install dash==0.29.0  # The core dash backend
pip install dash-html-components==0.13.2  # HTML components
pip install dash-core-components==0.36.0  # Supercharged components
pip install dash-table==3.1.3  # Interactive DataTable component (new!)

Пример

В приведенном ниже примере показан интерактивный график с раскрывающимися возможностями. Когда пользователь выбирает значение в раскрывающемся списке, код приложения динамически экспортирует данные из Google Finance в Pandas DataFrame. Источник"

Башплотлиб

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

Установка

с пипсом

pip install bashplotlib

из источника

$ git clone [email protected]:glamp/bashplotlib.git
$ cd bashplotlib
$ python setup.py install

Пример

scatter --file data/texas.txt --pch .

hist --file data/exp.txt

Колорама

Colorama раскрашивает вывод терминала в Python. Он использует стандартные escape-коды ANSI для раскрашивания и стилизации вывода терминала. Иногда рекомендуется раскрасить журналы в терминале, чтобы выделять их, если что-то пойдет не так. Хотя можно вручную раскрасить вывод с помощью escape-символов, но это очень долгая и утомительная задача. Colorama предлагает простое решение. Просто включите его в скрипт и добавьте любой текст, который нужно раскрасить.

Установка

pip install colorama

Пример

Запустите следующий скрипт и посмотрите, как цвет текста меняется с разными параметрами.

import colorama
from colorama import Fore, Back, Style
colorama.init()
# Set the color semi-permanently
print(Fore.CYAN)
print("The Text will appear in cyan until it is reset")
print(Style.RESET_ALL)
# Colorize a single line and then reset
print(Fore.RED + 'Colorize a single line in RED' + Style.RESET_ALL)
# Colorize a single word in the output
print('You can also colorize a single word' + Back.GREEN + 'words' + Style.RESET_ALL + ' can be highlighted')
# Combine foreground and background color
print(Fore.BLUE + Back.WHITE)
print('Foreground, background, and styles can be combined')
print("==========            ")
print(Style.RESET_ALL)
print('Reset everything back to normal.')

Выход:

Полный список опций можно найти на официальной странице Github.

Заключение

Это был мой выбор полезных библиотек Python для науки о данных, помимо обычных, таких как numpy, pandas и т. Д. Если вы знаете о других библиотеках, которые можно добавить в список, упомяните их в комментариях ниже. Не забудьте опробовать их.