Выбор ответа Middle NumPy: массивы и векторизация обновлено
np.where с тремя аргументами
Вопрос
Что вернёт np.where(a > 0, a, 0) для a = np.array([-2, 3, -1, 5])?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: [0 3 0 5]. С тремя аргументами np.where(cond, x, y) берёт x там, где условие истинно, и y в остальных местах, сохраняя форму: [0 3 0 5].
Варианты ответа
(array([1, 3]),)[0 3 0 5]правильный ответ[-2 0 -1 0][3 5]
Разбор
С тремя аргументами np.where(cond, x, y) берёт x там, где условие истинно, и y в остальных местах, сохраняя форму: [0 3 0 5]. Кортеж индексов (array([1, 3]),) возвращает np.where с одним аргументом. [3 5] это булева маска a[a > 0], она укорачивает массив. [-2 0 -1 0] перепутаны ветки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Ещё по теме «NumPy: массивы и векторизация»
- Что значит axis=0
- Broadcasting: форма результата
- Обрезка выбросов по перцентилям
- Скользящее среднее через cumsum
- Попарные расстояния через broadcasting
- Стандартизация столбцов матрицы (z-score)
- Запись float в целочисленный массив
- Fancy indexing возвращает копию