Python для Data Science: 8 понятий, которые важно помнить

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


В последнее время использование Python для Data Science стало популярным, и мы подготовили памятку с темами, которые полезно знать.

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

Работа со списками (например, в цикле for) скучна и утомительна, но Python имеет встроенный инструмент для решения этой проблемы всего в одну строку. Чтобы лучше понять синтаксис, рассмотрите пример:

one-line list

И еще один пример – сравнительный анализ сразу двух способов (с циклом и без):

1

2

3

4

5

6

7

8

9

10

11

x=[1,2,3,4]

out=[]

foritem inx:

out.append(item**2)

print(out)

[1,4,9,16]

# vs.

x=[1,2,3,4]

out=[item**2foritem inx]

print(out)

[1,4,9,16]

Инструменты Python

Если вам надоело создавать функции для операции, которая выполнится всего один раз – используйте лямбда-выражения. Эти функции широко используются в Python для Data Science при создании одноразовых, маленьких и анонимных объектов. “Лямбды”  зачастую выглядят меньше, они понятнее и позволяют создать функцию, не создавая ее.

1

lambda arguments:expression

Лямбда-выражения могут делать все, что могут делать обычные функции, даже если они состоят всего из одного выражения.

1

2

3

double=lambdax:x *2

print(double(5))

10

Если что-то не понятно, рекомендуем посмотреть видео для закрепления.

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

1

2

3

4

5

# Map

seq=[1,2,3,4,5]

result=list(map(lambda var:var*2,seq))

print(result)

[2,4,6,8,10]

Работа функции фильтра схожа с картой: она принимает список и правило, но возвращает новое множество исходного списка, сравнивая каждый элемент с булевым правилом фильтрации.

1

2

3

4

5

# Filter

seq=[1,2,3,4,5]

result=list(filter(lambdax:x>2,seq))

print(result)

[3,4,5]

И снова видео для лучшего понимания:

Для создания быстрых и простых массивов NumPy еще не придумали ничего лучше, чем функции arrange и linspace. Каждая из них имеет свое конкретное назначение, достоинства и недостатки. Но основная привлекательность (в отличие от range) в том, что они выводят массивы NumPy, с которыми обычно легче работать Data Science.

arrange возвращает равномерно расположенные значения в пределах заданного интервала. Кроме начальной и конечной точек, можно определить размер шага или тип данных.

1

2

3

# np.arange(start, stop, step)

np.arange(3,7,2)

array([3,5])

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

Это особенно полезно для визуализации данных и объявления осей при построении графика – в Python для Data Science пригодится точность чисел с плавающей запятой.

1

2

3

# np.linspace(start, stop, num)

np.linspace(2.0,3.0,num=5)

array([2.0,2.25,2.5,2.75,3.0])

Python для Data Science

Возможно, вы сталкивались с этим при удалении столбцов в Pandas или при суммировании значений в матрице NumPy. Если нет, то давайте пока воспользуемся примером удаления столбца:

1

2

df.drop('Column A',axis=1)

df.drop('Row A',axis=0)

Параметр axis используется для указания на то, с чем вы хотите работать:

  • 1 – столбец;
  • 0 – строка.

Тема непростая, поэтому вот видео для закрепления:

Направление Python для Data Science очень тесно связано с огромными массивами данных, и Pandas очень помогает в этом. Если вы знакомы с SQL, то эти понятия будут для вас более понятными. Данные функции являются способами объединения. Может казаться сложным для понимания, какой метод лучше всего использовать и в каком случае, поэтому давайте их рассмотрим.

concat позволяет пользователю добавлять один или несколько фреймов данных ниже или рядом с ним (в зависимости от того, как вы определяете ось).

3

merge объединяет несколько фреймов данных в общих столбцах, которые служат первичным ключом.

2

join, как и merge, объединяет два фрейма данных, но соединяет он их на основании их индексов, а не по указанному столбцу.

1

Вот официальный мануал по Pandas в качестве “домашнего задания” и еще один ролик:

Думайте об apply как о функции карты, но для фреймов Pandas или для рядов. Ряды очень сильно похожи на массивы NumPy. apply применяет функцию к каждому элементу столбца или строки в зависимости от того, что вы укажете. Это может быть полезно при форматировании и обработке значений по всему столбцу DataFrame, без использования цикла.

И напоследок не менее важное – сводные таблицы. Они похожи на одноименные таблицы в Microsoft Excel. Сводная таблица принимает на вход данные из отдельных столбцов и переводит все в многомерное представление. Встроенная в Pandas функция pivot_table создает сводную таблицу в виде электронной таблицы.

Вот немного теории и видео:

Оригинал



Источник: towardsdatascience.com

Комментарии: