Задачи на индексацию, срезы и маски NumPy
Эта подборка помогает научиться выбирать нужные элементы массива NumPy и понимать, когда изменение результата затрагивает исходные данные. Практика охватывает индексы, срезы, маски и copy.
Три способа выбрать данные
a[1, 2] выбирает элемент по координатам. a[:, 1:3] выбирает блок по диапазонам позиций. a[a > 4] выбирает элементы по условию. Полноразмерная булева маска двумерной матрицы возвращает одномерный набор значений.
import numpy as np
a = np.arange(12).reshape(3, 4)
print(a[:, 1:3].shape)
print(a[a > 8].tolist())
block = a[:, 1:3]
print(np.shares_memory(a, block))
Результат:
(3, 2)
[9, 10, 11]
True
Обычный срез разделяет память с исходным массивом. Если нужна независимая версия блока, создайте .copy(). Чтение через булеву маску или список целочисленных индексов создаёт копию; присваивание в индексированный исходный массив работает иначе.
Маршрут практики
- Отработайте границы и шаг двумерного среза.
- Объедините условия и замените элементы по маске.
- Сравните view и copy после изменения данных.
Для операций над выбранным блоком переходите к задачам на формы и broadcasting. Полный набор тем — практика NumPy. Объяснения по порядку доступны в бесплатном курсе.
- NumPy shape, ndim, size и dtype: атрибуты массива и задача
Чем отличаются shape, ndim, size и dtype в NumPy? Короткий пример атрибутов ndarray и задача с проверкой кода без регистрации.
NumPy и pandas: практический тренажёр - dtype NumPy: целые и вещественные массивы, типы элементов
Как NumPy выбирает dtype из int и float, что показывает dtype.kind и зачем задавать тип явно? Пример и задача с проверкой.
NumPy и pandas: практический тренажёр - Срезы двумерного массива NumPy: строки, столбцы и шаг
Как работают a[::2, 1::2] и отрицательные индексы NumPy? Разберите двумерные срезы на примере и решите задачу с проверкой.
NumPy и pandas: практический тренажёр - NumPy: прямоугольный срез вместо цепочечной индексации
Исправьте цепочечную индексацию двумерного массива: выберите прямоугольный срез одной операцией NumPy.
NumPy и pandas: практический тренажёр - Булева маска NumPy: фильтрация, несколько условий и замена
Как объединить условия через & и | в NumPy, инвертировать маску и заменить элементы? Пример двумерного массива и задача с проверкой.
NumPy и pandas: практический тренажёр - NumPy: целочисленная индексация, присваивание и маска
Отберите и измените элементы ndarray по массиву индексов, затем сравните результат с булевой маской.
NumPy и pandas: практический тренажёр - View и copy: предсказание влияния изменений среза на исходный массив — задача по NumPy и pandas
copy() c[0] = 99 Чему равен a[0] после выполнения этих строк? Проверьте ответ в задаче из бесплатного курса NumPy и pandas.
NumPy и pandas: практический тренажёр - NumPy view и copy: почему срез меняет исходный массив
Когда срез NumPy меняет исходный массив и зачем нужен copy()? Пример общей памяти и задача на view, copy и изменение элементов.
NumPy и pandas: практический тренажёр - NumPy sharesmemory: view, copy и изменение исходного массива
Исправьте ошибки в работе с представлением и копией ndarray; проверьте общую память через np.sharesmemory.
NumPy и pandas: практический тренажёр
