Место, где можно начать хобби или карьеру в области науки о данных.

Данные - это то, что сегодня движет всеми отраслями. От количественных трейдеров, анализирующих и прогнозирующих тенденции фондового рынка, до специалистов в области здравоохранения, прогнозирующих серьезность и вирусность пандемий новорожденных, данные являются ключевым фактором, общим для всего. Небольшие объемы данных легко анализировать с помощью калькулятора или электронной таблицы Excel, но как только вычисления становятся сложными и объем данных экспоненциально растет, нам нужны более надежные инструменты. Здесь на помощь приходят аналитика программного обеспечения и наука о данных.

Хотя сегодня существует множество доступных программных аналитических инструментов, таких как Matlab и R, сегодня я сосредоточусь на Python. Python очень эффективен, когда дело доходит до анализа данных, благодаря множеству библиотек, которые многие люди создали за эти годы. Хотя важно тщательно изучить как можно больше этих библиотек, если вы хотите продолжить карьеру в области науки о данных, я расскажу о некоторых библиотеках для начинающих, с которых люди обычно начинают.

NumPy

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

Приведенный выше код даст следующий результат:

Input:  [0, 1.5707963267948966, 3.141592653589793, 4.71238898038469, 6.283185307179586]
Sine values:  [ 0.0000000e+00  1.0000000e+00  1.2246468e-16 -1.0000000e+00
-2.4492936e-16]
Cosine values:  [ 1.0000000e+00  6.1232340e-17 -1.0000000e+00 -1.8369702e-16
1.0000000e+00]
Sine values:  [ 0.  1.  0. -1. -0.]
Cosine values:  [ 1.  0. -1. -0.  1.]

Что имеет смысл, глядя на график ниже:

NumPy также может выполнять более сложные вычисления, такие как следующие, где он вычисляет сложные матрицы для фильтра Калмана в беспилотных автомобилях:

Существует огромная коллекция встроенных функций для всех видов научных расчетов, и если это то, что вас интересует, NumPy - это библиотека, которую нужно освоить. Чтобы узнать больше, перейдите на официальный сайт документации для NumPy.

панды

Это самая фундаментальная библиотека для анализа и обработки данных в Python. Эта библиотека может быстро считывать большие файлы необработанных данных в объект DataFrame, выполнять все виды операций очистки и интеллектуального анализа данных с автоматическим индексированием и выравниванием данных, выполнять все возможные запросы SQL к таблице DataFrame, такие как соединения и слияния, и затем выведите данные в другой файл данных или даже прямо в визуализации.

Что действительно замечательно в использовании pandas в среде Python, так это то, что Python - это язык сценариев, что означает, что код может быть выполнен без предварительной компиляции. Таким образом, специалисты по обработке данных могут выполнять быструю аналитику, открыв терминал Python, как показано ниже:

С помощью pandas специалист по данным может легко искать данные, относящиеся к определенному клиенту, запрашивая их clientId и объединяя их с другими наборами необработанных данных, как инженеры обычно делают с базами данных, но теперь с файлами необработанных данных. Кроме того, специалисты по обработке данных могут легко создавать все виды визуализаций с помощью одной строки, например следующей:

df = pd.DataFrame('some data...')
df.plot(x='label1', y='label2', kind='scatter', ...)

В целом, pandas обеспечивает простой способ чтения / записи данных и позволяет очень легко и быстро выполнять аналитику файлов необработанных данных и является важным инструментом в арсенале любого специалиста по данным. Чтобы узнать больше о пандах, посетите официальный сайт документации.

SciPy

Библиотека SciPy - это абстрактный слой поверх NumPy и остальной части стека SciPy. Эта библиотека включает в себя множество численных процедур, таких как численное интегрирование, интерполяция, оптимизация, линейная алгебра, статистика, специальные функции, БПФ, обработка сигналов и изображений, решатели ODE и другие задачи, распространенные в науке и технике. Следовательно, эта библиотека более специфична для математических функций, которые адаптируются к вычислениям, выполняемым учеными и инженерами с академической точки зрения. Чтобы узнать больше, посетите официальный сайт документации.

Scikit-Learn

Библиотека Scikit-Learn дополнительно абстрагируется от SciPy и более практична и ориентирована на приложения. Эта библиотека включает функции, которые больше ориентированы на приложения машинного обучения, такие как регрессия, классификация, кластеризация и т. Д. Люди, увлеченные машинным обучением, определенно захотят узнать больше о функциях, которые предоставляет эта библиотека. Например, вы можете легко запустить линейную регрессию RANSAC для набора необработанных данных, выполнив следующий код:

# generate random data with a small set of outliers
np.random.seed(0)
X[:n_outliers] = 3 + 0.5 * np.random.normal(size=(n_outliers, 1))
y[:n_outliers] = -3 + 10 * np.random.normal(size=n_outliers)

# Fit line using all data
lr = linear_model.LinearRegression()
lr.fit(X, y)

# Robustly fit linear model with RANSAC algorithm
ransac = linear_model.RANSACRegressor()
ransac.fit(X, y)
inlier_mask = ransac.inlier_mask_
outlier_mask = np.logical_not(inlier_mask)

# Predict data of estimated models
line_X = np.arange(X.min(), X.max())[:, np.newaxis]
line_y = lr.predict(line_X)
line_y_ransac = ransac.predict(line_X)

Scikit-Learn также включает очень полезный пакет, называемый предварительной обработкой, который отлично подходит для интеллектуального анализа данных и очистки / сортировки необработанных данных. Этот пакет содержит такие функции, как нормализация, масштабирование данных до диапазона, масштабирование разреженных данных и даже выполнение нелинейных преобразований, таких как сопоставление данных с равномерным распределением. Кроме того, у него также есть функция, которая случайным образом разделяет данные для использования в моделях:

sklearn.model_selection.train_test_split(*arrays, **options)[source]

Используя Scikit-Learn, специалисты по данным могут создавать модели машинного обучения, используя всего пару строк. Чтобы узнать больше о Scikit-Learn, посетите официальный сайт документации.

matplotlib.pyplot

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

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

Заключение

Есть много библиотек Python, которые я не рассматривал. Существует множество библиотек, ориентированных на биоинформатику, глубокое обучение и искусственный интеллект, самоуправление и т. Д. Однако библиотеки, описанные здесь, широко используются в науке о данных и являются строительными блоками многих продвинутых библиотек Python. Я считаю, что знакомство с этими библиотеками создаст прочную основу для новичка, который хочет исследовать область науки о данных. Если есть какие-либо другие распространенные библиотеки Python, которые, по вашему мнению, было бы полезно изучить, поделитесь ими в комментариях ниже.