Я знаю, что уже слишком поздно для этого ответа, но я взволнован, изучая NumPy.Вы можете векторизовать функцию самостоятельно с помощью numpy.where.
def func(x):
import numpy as np
x = np.where(x<0, 0., x*10)
return x
Примеры
Использование скаляра в качестве ввода данных:
x = 10
y = func(10)
y = array(100.0)
использование массива в качестве ввода данных:
x = np.arange(-1,1,0.1)
y = func(x)
y = array([ -1.00000000e+00, -9.00000000e-01, -8.00000000e-01,
-7.00000000e-01, -6.00000000e-01, -5.00000000e-01,
-4.00000000e-01, -3.00000000e-01, -2.00000000e-01,
-1.00000000e-01, -2.22044605e-16, 1.00000000e-01,
2.00000000e-01, 3.00000000e-01, 4.00000000e-01,
5.00000000e-01, 6.00000000e-01, 7.00000000e-01,
8.00000000e-01, 9.00000000e-01])
Предостережения :
1) Если x
является замаскированным массивом, вам нужно использовать np.ma.where
вместо, поскольку это работает для замаскированных массивов.