评估数组值函数python 3

时间:2019-01-08 17:02:47

标签: python-3.x numpy numpy-ndarray numpy-ufunc

我需要集成一个矩阵函数,如下例所示:

def func(a1, a2, a3):
     return np.array([a1, (a1 + a2), a3])

执行此操作的无效方法是使用三个for循环。虽然,我想提高效率。我考虑过使用“地图”,例如:

def integral(func, a1, a2, a3, w):
    f = np.array(list(map(func, a1, a2, a3)))
    I = np.zeros((3, ))
    for fi, wi in zip(f, w):
        I = I + wi*np.array(fi)
    return I

a1a2a3w是相同大小的数组(a是采样点,w是权重)

这是最优化的方法吗?

1 个答案:

答案 0 :(得分:1)

特别是对于此功能,您可以将所有内容矢量化。

I = w@np.vstack([a1,a1+a2,a3]).T

但是,一般来说,isn't fast to apply a python function over a numpy array