Нашли ошибку?
Скачать чистый
урок 2 из 5≈ 15 минупражнения: 0 из 4

Двумерная индексация

В таблице элемент — это пара индексов [строка, столбец]; отсюда строка, столбец и прямоугольный блок одной записью.

Python запустится при первом выполнении

Загрузим погоду целиком — таблицей 365 × 4: строка — день, столбцы — номер дня, минимум, максимум, осадки.

[ ]Погода таблицей
import numpy as np

weather = np.loadtxt("data/moscow_2025.csv", delimiter=",", skiprows=1)
print(weather.shape)
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
(365, 4)

Элемент: [строка, столбец]

У двумерного массива элемент задаётся двумя индексами через запятую: сначала строка, потом столбец. Оба считаются с нуля. Максимальная температура (столбец 2) 1 января (строка 0) — weather[0, 2]:

[ ]Один элемент таблицы
print(weather[0, 2])     # 1 января, максимум
print(weather[-1, 1])    # 31 декабря, минимум
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
-3.2
-7.1
[ ]Упражнение 1Десятое января решено

Сохраните в day10_min минимальную температуру 10 января, а в day10_rain — осадки в этот день.

day10_min = ...
day10_rain = ...

Строка и столбец

Если указать только первый индекс, получится строка целиком — все показатели одного дня. Чтобы взять столбец, на месте строк ставят двоеточие : — «все строки»:

[ ]Строка и столбец
print(weather[1])          # строка: 2 января
col = weather[:, 2]        # столбец: максимумы за год
print(col.shape, col.max())
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
[ 2.  -9.7 -3.2  0. ]
(365,) 27.2

Двоеточие — это срез без границ. Столбец — снова одномерный массив, с ним работает всё, что мы уже знаем: mean, max, срезы.

[ ]Упражнение 2Столбцы температур решено

Сохраните в tmin столбец минимальных температур (столбец 1), а в tmax — максимальных (столбец 2).

tmin = ...
tmax = ...

[ ]Упражнение 3Первый день года решено

Сохраните в day1 строку таблицы за 1 января — все четыре показателя.

day1 = ...

Блок: срезы по двум осям

Срез можно задать и для строк, и для столбцов сразу: weather[0:7, 1:3] — первые 7 строк и столбцы 1 и 2. Получается маленькая таблица:

[ ]Первая неделя, только температуры
week = weather[0:7, 1:3]
print(week.shape)
week
Выводсохранённый · нажмите «Выполнить», чтобы получить свой
(7, 2)
array([[ -9.9,  -3.2],
       [ -9.7,  -3.2],
       [ -9. ,  -3.7],
       [-14.2,  -7.2],
       [-12.6,  -7.2],
       [-12.4,  -7.8],
       [-12.8,  -8. ]])
Вопрос

Какая форма у weather[:, 1:3]?

[ ]Упражнение 4Весенние температуры решено

Март — это дни с индекса 59 по 89 включительно. Сохраните в march блок таблицы за март, только два столбца температур (минимум и максимум).

march = ...

Итоги

  • Элемент таблицы — a[строка, столбец], оба индекса с нуля.
  • a[i] — строка, a[:, j] — столбец (одномерные массивы).
  • a[r1:r2, c1:c2] — прямоугольный блок; срезы по каждой оси работают как обычно.

Подробнее в справочнике

Нашли ошибку?