У меня есть массив numpy функций, и я хотел бы применить к массиву с плавающей точкой, используя правила вещания numpy. Помимо использования для l oop, есть ли какой-нибудь стандартный способ добиться этого?
funcs = np.array([f1, f2, f3]) # each f is of type f(x: float) -> float
data = np.array([[1,2,3],
[4,5,6]])
# Expected result
np.array([[f1(1),f2(2),f3(3)],
[f1(4),f2(5),f3(6)]])
Edit
Ниже приведен лучший пример ожидаемого поведения. Важно иметь возможность вещания, как если бы вы суммировали два массива:
>>> np.array([0,1]) + 1
np.array([0+1, 1+1])
>>> np.array([0,1]) + np.array([1,2])
np.array([0+1, 1+2])
>>> np.array([0,1]) + np.array([[1,2], [3,4]])
np.array([[0+1, 1+2], [0+3, 1+4]])
## Expected behaviour (Imagine % means function application operator)
>>> np.array([0,1]) % f
np.array([f(0), f(1)])
>>> np.array([0,1]) % np.array([f1,f2])
np.array([f1(0), f2(1)])
>>> np.array([0,1]) % np.array([[f1,f2], [f3,f4]])
np.array([[f1(0), f2(1)], [f3(0), f4(1)]])