3.4 Индексация и срезы
1. Почему индексирование важно в аналитике данных
После загрузки данных в массив NumPy аналитик редко работает со всем массивом сразу.
На практике обычно требуется:
· выбрать отдельные элементы;
· получить часть массива;
· извлечь строку или столбец;
· выделить нужные признаки;
· подготовить данные для анализа или модели.
Именно поэтому одной из важнейших возможностей NumPy является индексирование и работа со срезами.
2. Индексирование одномерного массива
NumPy использует нумерацию элементов с нуля, как и списки Python.
Пример массива:
import numpy as np
arr = np.array([10, 20, 30, 40, 50])
Доступ к элементам
print(arr[0])
print(arr[-1])
Результат:
10
50
Особенности индексирования
· 0 – первый элемент массива;
· -1 – последний элемент массива;
· отрицательные индексы позволяют обращаться к элементам с конца массива.
3. Что такое срез массива
Срез позволяет выбрать часть массива.
Общий синтаксис:
arr[start:stop:step]
где:
· start – начальный индекс;
· stop – индекс окончания;
· step – шаг выбора элементов.
Примеры срезов
print(arr[1:4])
print(arr[:3])
print(arr[::2])
Результат:
[20 30 40]
[10 20 30]
[10 30 50]
4. Как работают срезы
При выполнении среза:
· элемент с индексом start включается;
· элемент с индексом stop не включается.
Например:
arr[1:4]
означает:
· начало с элемента с индексом 1;
· завершение перед индексом 4.
Поэтому выбираются:
20 30 40
5. Срезы как инструмент аналитики
Срезы позволяют:
· выбирать диапазоны наблюдений;
· извлекать части выборки;
· подготавливать данные к анализу;
· выделять признаки модели.
Например,
можно:
· взять первые 100 записей;
· выбрать каждый второй элемент;
· выделить часть временного ряда.
Именно поэтому срезы активно используются в аналитике данных.
6. Индексирование двумерных массивов
NumPy поддерживает двумерные массивы, которые можно рассматривать как матрицы или таблицы признаков.
Пример:
matrix = np.array([
[1, 2, 3],
[4, 5, 6]
])
Для матриц используются два индекса:
matrix[строка, столбец]
Пример обращения
print(matrix[0, 1])
Результат:
2
7. Срезы в двумерных массивах
NumPy позволяет выбирать:
· строки;
· столбцы;
· подматрицы.
Примеры
print(matrix[:, 0])
print(matrix[1, :])
print(matrix[:, 1:3])
Результаты
[1 4]
[4 5 6]
[[2 3]
[5 6]]
8. Что означает символ :
В срезах двумерных массивов символ : означает:
выбрать все элементы
по соответствующей оси.
Например
matrix[:, 0]
означает:
· все строки;
· первый столбец.
А запись
matrix[1, :]
означает:
· вторая строка;
· все столбцы.
9. Индексирование как основа анализа данных
Индексирование используется:
· при выборе признаков модели;
· фильтрации данных;
· выделении столбцов таблицы;
· подготовке обучающих выборок;
· работе с DataFrame в Pandas.
Без понимания индексирования невозможно эффективно работать с табличными структурами данных.
10. Индексация и Data Science
Практически все библиотеки аналитики данных используют идеи индексирования NumPy.
Например:
· Pandas;
· библиотеки машинного обучения;
· инструменты обработки изображений;
· системы научных вычислений.
Именно поэтому понимание срезов и индексирования является обязательной частью подготовки аналитика данных.
Итоги подраздела
В теме были рассмотрены:
· индексирование массивов;
· срезы;
· выбор элементов массива;
· индексирование матриц;
· выбор строк и столбцов;
· роль индексирования в аналитике данных.
Индексирование и срезы позволяют аналитикам эффективно извлекать, выбирать и подготавливать данные для дальнейшего анализа.
Именно эти механизмы лежат в основе работы с современными табличными структурами и моделями машинного обучения.