Кусочная функция в NumPy
Функция piecewise
принимает массив аргументов, список
условий и список формул для каждого
участка. Для каждого элемента берут
первую подходящую формулу, как при
выборе по списку условий, но считают
значение по правилу, а не готовую
константу.
Умножим малые числа на 2, а
большие увеличим на 100 через
две простые лямбды:
import numpy as np
values = np.array([-1, 2, 10])
small = values < 5
big = values >= 5
result = np.piecewise(
values,
[small, big],
[lambda x: x * 2, lambda x: x + 100],
)
print(result) # выведет [ -2 4 110]
По ряду [1, 4, 8, 11] для
чисел до 5 верните квадрат,
для остальных прибавьте 50,
и выведите результат.
По ряду [-2, 0, 6] для
отрицательных умножьте на -1,
для неотрицательных меньше 5
оставьте как есть, иначе разделите
на 2, и выведите результат.