Индексация и срезы
Часть раздела Данные и графики путешествия по Machine Learning на Coddy. Урок 8 из 60.
Массивы индексируются, как списки, начиная с 0. Пять дней занятий на фортепиано, в минутах:
practice = np.array([20, 0, 35, 15, 40])
print(practice[0]) # первый
print(practice[-1]) # последний
print(practice[1:4]) # позиции с 1 по 3Это выводит:
20
40
[ 0 35 15]Для обращения к элементу двумерного массива укажи строку и столбец в одной паре скобок, сначала строку. Каждая строка массива stock — это магазин, каждый столбец — продукт:
stock = np.array([[5, 8, 2, 6], [9, 1, 4, 3], [7, 0, 6, 8]])
print(stock[1, 2]) # одно значение
print(stock[0]) # целая строка
print(stock[:, 3]) # целый столбецЭто выводит:
4
[5 8 2 6]
[6 3 8]В месте для строки двоеточие означает каждую строку, а срез вроде 0:2 — некоторые из них. Поэтому data[:, column] — это один признак для каждого образца.
Задание
ЛегкоОтчёт отеля содержит ошибки. В bookings каждая строка соответствует неделе, а каждый столбец — дню недели, с понедельника по воскресенье. Программа считывает номер недели и дня, начиная с 1.
В каждой строке есть одна ошибка. Исправь их так, чтобы они соответствовали подписям:
Week: вся неделяWeekend: её последние два дня, срезDay: этот день для каждой неделиBooked: этот конкретный день
Для недели 3, дня 5:
Week 3: [11 12 13 17 20 24 26]
Weekend: [24 26]
Day 5: [18 19 20 21]
Booked: 20Попробуйте сами
import numpy as np
# Забронированные номера в небольшом отеле: одна строка на неделю (недели с 1 по 4),
# один столбец на день (дни с 1 по 7, с понедельника по воскресенье)
bookings = np.array([
[12, 15, 14, 16, 18, 25, 27],
[10, 13, 15, 14, 19, 26, 28],
[11, 12, 13, 17, 20, 24, 26],
[9, 14, 16, 15, 21, 27, 29],
])
week = int(input())
day = int(input())
# Отчёт выводит неверные числа: исправьте строки ниже
row = bookings[week]
print(f"Week {week}: {row}")
print(f"Weekend: {row[5:6]}")
print(f"Day {day}: {bookings[day - 1]}")
print(f"Booked: {bookings[day - 1, week - 1]}")
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Данные и графики
4Преобразование данных
Изменение формы массивовОбъединение массивовСлучайные числаПовторение: симуляция броска кубика2Массивы NumPy
Создание массивовФорма и размерДиапазоны чиселИндексация и срезыПовторение: температурная сетка5Линейные графики и диаграммы рассеяния
Подписи и заголовкиДиаграммы рассеянияНесколько линий и легендыЦвета и маркерыФигуры и осиПовторение: шаги за неделю8Фильтрация и сортировка
Выбор строкФильтрация строкСортировка значенийНовые столбцыПовторение: лучшие товары3Математика массивов
Математика над целыми массивамиСводная статистикаСтатистика по осямТранслированиеБулевы маскиПовторение: результаты экзамена6Графики для данных
Столбчатые диаграммыГистограммыНесколько графиков в одномИзображения как массивыПовторение: отчёт об осадках9Группировка и очистка данных
Подсчёт значенийГруппировка данныхНесколько сводокПропущенные значенияПовторение: результаты опроса12Заключительные задания
Отчёт о продажахПоказания датчиковЦифры с первого взглядаИсследователь-пингвинПотренируйтесь самостоятельно: Онлайн-компилятор Python