Обычно простые составные функции можно легко написать, как и любую другую функцию, умножив их на соответствующие условия.Единственное место, где нужно быть осторожным, это логарифм, который не определен для полного обращения.Эту проблему можно обойти, взяв здесь абсолютное значение, поскольку оно в любом случае относится только к диапазону> 2.
import numpy as np
import matplotlib.pyplot as plt
f = lambda x: np.abs(x)*(x<0) - ((0<=x) & (x < 1)) + ((1<=x) & (x < 2)) + np.log(np.abs(x))*(2<=x)
x = np.linspace(-3,5,200)
plt.plot(x,f(x))
plt.show()
![enter image description here](https://i.stack.imgur.com/02w64.png)
Согласнок комментарию под ответом можно также оценить функцию в каждом из интервалов отдельно,
intervals = [(-3, -1e-6), (0,1-1e-6), (1, 2-1e-6), (2,5)]
for (s,e) in intervals:
x = np.linspace(s,e,100)
plt.plot(x,f(x), color="C0")
![enter image description here](https://i.stack.imgur.com/plQKQ.png)