Загрузим погоду целиком — таблицей 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
Сохраните в day10_min минимальную температуру 10 января, а в day10_rain — осадки в этот день.
Заготовка упражнения обновилась с тех пор, как вы сохранили свой код.
Вернуть заготовку? Ваш код в этом упражнении будет удалён.
day10_min = ...
day10_rain = ...Упражнение пока не решено, поэтому для ячеек ниже выполнено эталонное решение — ваш код не изменён.
day10_min = weather[9, 1]
day10_rain = weather[9, 3]Строка и столбец
Если указать только первый индекс, получится строка целиком — все показатели одного дня. Чтобы взять
столбец, на месте строк ставят двоеточие : — «все строки»:
print(weather[1]) # строка: 2 января
col = weather[:, 2] # столбец: максимумы за год
print(col.shape, col.max())[ 2. -9.7 -3.2 0. ] (365,) 27.2
Двоеточие — это срез без границ. Столбец — снова одномерный массив, с ним работает всё, что мы уже знаем:
mean, max, срезы.
Сохраните в tmin столбец минимальных температур (столбец 1), а в tmax — максимальных (столбец 2).
weather[:, номер].Заготовка упражнения обновилась с тех пор, как вы сохранили свой код.
Вернуть заготовку? Ваш код в этом упражнении будет удалён.
tmin = ...
tmax = ...Упражнение пока не решено, поэтому для ячеек ниже выполнено эталонное решение — ваш код не изменён.
tmin = weather[:, 1]
tmax = weather[:, 2]Сохраните в day1 строку таблицы за 1 января — все четыре показателя.
weather[0].Заготовка упражнения обновилась с тех пор, как вы сохранили свой код.
Вернуть заготовку? Ваш код в этом упражнении будет удалён.
day1 = ...Упражнение пока не решено, поэтому для ячеек ниже выполнено эталонное решение — ваш код не изменён.
day1 = weather[0]Блок: срезы по двум осям
Срез можно задать и для строк, и для столбцов сразу: 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]?
: берёт все 365 строк, 1:3 — два столбца (1 и 2; конец 3 не входит). Получается таблица 365 × 2.Март — это дни с индекса 59 по 89 включительно. Сохраните в march блок таблицы за март, только два столбца
температур (минимум и максимум).
59:90: конец не входит, поэтому 90.1:3.Заготовка упражнения обновилась с тех пор, как вы сохранили свой код.
Вернуть заготовку? Ваш код в этом упражнении будет удалён.
march = ...Упражнение пока не решено, поэтому для ячеек ниже выполнено эталонное решение — ваш код не изменён.
march = weather[59:90, 1:3]Итоги
- Элемент таблицы —
a[строка, столбец], оба индекса с нуля. a[i]— строка,a[:, j]— столбец (одномерные массивы).a[r1:r2, c1:c2]— прямоугольный блок; срезы по каждой оси работают как обычно.