Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Васильев Ю. - Python для data science (Библиотека программиста) - 2023.pdf
Скачиваний:
10
Добавлен:
07.04.2024
Размер:
7.21 Mб
Скачать

3

Библиотеки Python

для data science

Python предоставляет доступ к надежной экосисте-

ме сторонних библиотек, которые будут полезны при

анализе данных и выполнении операций с данными.

Это глава познакомит вас с тремя самыми популярны- ми библиотеками для работы с данными: NumPy, pandas и scikit-learn. Вы убедитесь, что многие приложения для

анализа данных прямо или косвенно используют эти библиотеки.

NumPy

Библиотека NumPy (сокращение от Numeric Python) полезна для работы с массивами — структурами данных, хранящими значения одного типа. Многие другие библиотеки Python, выполняющие операции с числами, опираются на NumPy.

Массив NumPy представляет собой сетку элементов одного типа. Эта структура данных является ключевым компонентом библиотеки NumPy. Элементы массива NumPy индексируются кортежем целых неотрицательных чисел. Массивы NumPy похожи на списки Python, за исключением того, что они требуют меньше памяти и обычно быстрее, поскольку используют оптимизированный, прекомпилированный код на языке C.

64      Глава 3. Библиотеки Python для data science

Массивы NumPy поддерживают поэлементные операции, что позволяет выполнять основные арифметические вычисления сразу над всем массивом в компактном и удобочитаемом коде. Поэлементная операция — это операция над двумя массивами одинаковой размерности, в результате которой получается другой массив той же размерности, где каждый элемент i, j является результатом вычисления, выполненного над элементами i, j двух исходных массивов. На рис. 3.1 показана поэлементная операция, выполняемая над двумя массивами NumPy.

0

1

+

3

2

=

3

3

 

 

 

 

 

 

2

3

1

0

3

3

 

 

 

 

 

 

 

 

 

 

Рис. 3.1. Сложение двух массивов NumPy

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

Установка NumPy

NumPy — сторонняя библиотека, то есть она не является частью стандартной библиотеки Python. Проще всего установить ее с помощью следующей команды:

$ pip install NumPy

Python воспринимает NumPy как модуль, поэтому перед использованием библиотеку необходимо импортировать в свой скрипт.

Создание массива NumPy

Массив NumPy можно создать из данных одного или нескольких списков Python. Предположим, для каждого сотрудника компании существует список выплат базового оклада за последние три месяца. Чтобы собрать всю информацию о зарплате в одну структуру данных, можно использовать следующий код:

import numpy as np

jeff_salary = [2700,3000,3000] nick_salary = [2600,2800,2800] tom_salary = [2300,2500,2500]

base_salary = np.array([jeff_salary, nick_salary, tom_salary]) print(base_salary)

NumPy      65

Начинаем с импортирования библиотеки NumPy . Затем определяем несколько списков, каждый из которых содержит данные о базовом окладе сотрудника за последние три месяца . Наконец, объединяем списки в массив NumPy . Вот как он выглядит:

[[2700 3000 3000] [2600 2800 2800] [2300 2500 2500]]

Это двумерный массив. У него две оси, которые имеют целочисленные индексы, начиная с 0. Ось 0 проходит вертикально вниз по строкам массива, а ось 1 — горизонтально по столбцам.

Точно так же можно создать массив, содержащий ежемесячные премии сотрудников:

jeff_bonus = [500,400,400] nick_bonus = [600,300,400] tom_bonus = [200,500,400]

bonus = np.array([jeff_bonus, nick_bonus, tom_bonus])

Выполнение поэлементных операций

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

salary_bonus = base_salary + bonus print(type(salary_bonus)) print(salary_bonus)

Как видим, операция сложения реализуется в одной строке . Полученный набор­ данных представляет собой массив NumPy, в котором каждый элемент является суммой соответствующих элементов массивов base_salary

и bonus:

<class 'NumPy.ndarray'>

[[3200 3400 3400] [3200 3100 3200] [2500 3000 2900]]

66      Глава 3. Библиотеки Python для data science

Использование статистических функций NumPy

Статистические функции NumPy позволяют анализировать содержимое массива. Например, можно найти наибольшее значение по всему массиву или на заданной оси.

Допустим, требуется найти наибольшее значение в массиве salary_bonus, созданном в предыдущем разделе. Это можно сделать с помощью функции max() массива NumPy:

print(salary_bonus.max())

Функция возвращает максимальную сумму, выплаченную за последние три месяца сотрудникам, добавленным в датасет:

3400

NumPy также может найти максимальное значение массива на заданной оси. Если требуется определить максимальную сумму, выплаченную за последние три месяца каждому из сотрудников, можно использовать функцию NumPy amax(), как показано ниже:

print(np.amax(salary_bonus, axis = 1))

Указав axis = 1, мы сообщаем функции amax(), что искать максимум в массиве salary_bonusнужно горизонтально (по столбцам); таким образом, функция применяется к каждой строке. В результате рассчитывается максимальная ежемесячная сумма, выплаченная за последние три месяца, отдельно по каждому сотруднику:

[3400 3200 3000]

Аналогичным образом можно рассчитать максимальную сумму, выплаченную за каждый из последних трех месяцев, среди всех сотрудников, изменив параметр axis на 0:

print(np.amax(salary_bonus, axis = 0))

Результат:

[3200 3400 3400]