Подстановка по условию в NumPy
Функция where принимает три
массива одной формы: логическое
условие, значение для ячеек с
True и значение для ячеек
с False. На выходе новый
массив той же формы, что и условие.
Исходные данные при этом не меняются.
Возьмём ряд и подставим нули там,
где число не больше 3, а
в остальных ячейках оставим исходное
значение:
import numpy as np
scores = np.array([1, 4, 3, 5])
result = np.where(scores > 3, scores, 0)
print(result) # выведет [0 4 0 5]
print(scores) # выведет [1 4 3 5]
Вместо нуля можно подставить любое
число или другой массив той же
формы. Заменим малые значения
на -1, а большие оставим
как были:
import numpy as np
temps = np.array([10, 20, 15, 25])
fixed = np.where(temps >= 18, temps, -1)
print(fixed) # выведет [-1 20 -1 25]
Создайте ряд из чисел 2, 7,
5 и 9, соберите новый
ряд той же длины: где элемент
больше 6, оставьте его,
иначе запишите 0, и выведите
результат.
Задайте ряд из четырёх температур,
получите массив, где при значении
ниже 0 стоит 0, а
иначе исходное число, и выведите
его. Исходный ряд тоже выведите
и убедитесь, что он не изменился.
Создайте ряд из чисел 1, 2,
2 и 3, подставьте
10 там, где значение равно
2, а в остальных ячейках
оставьте исходные числа, и выведите
новый ряд.