вы можете использовать эту основанную на массиве операцию, предполагая, что ваши функции g
и h
могут принимать все значения в качестве входных (то есть g
не из-за ошибки / исключения для неположительных значений и h
для положительных значений) , Уравнение самоочевидно для рассматриваемого оператора if:
result = g(x)*(x>0) + h(x)*(x<=0)
И если ваша функция g
принимает только положительные значения, а функция h
принимает только неположительные, вы можете замаскировать массив x
и выполняйте операции и объединяйте их следующим образом:
idx_p = np.argwhere(x>0)
idx_np = np.argwhere(x<=0)
result = np.zeros_like(x)
result[idx_p] = g(x[x>0].reshape(-1, 1))
result[idx_np] = h(x[x<=0].reshape(-1, 1))
пример кода:
x = np.array([-1,1,-2,2])
def g(x):
return x**2
def h(x):
return x
result = g(x)*(x>0) + h(x)*(x<=0)
вывод:
[-1 1 -2 4]