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;

·         библиотеки машинного обучения;

·         инструменты обработки изображений;

·         системы научных вычислений.

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

 

Итоги подраздела

В теме были рассмотрены:

·         индексирование массивов;

·         срезы;

·         выбор элементов массива;

·         индексирование матриц;

·         выбор строк и столбцов;

·         роль индексирования в аналитике данных.

Индексирование и срезы позволяют аналитикам эффективно извлекать, выбирать и подготавливать данные для дальнейшего анализа.

Именно эти механизмы лежат в основе работы с современными табличными структурами и моделями машинного обучения.