0

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

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

a1, a2,a3w是相同大小的数组(a 是样本点,w 是权重)

这是最优化的方式吗?

4

1 回答 1

1

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

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

但是,通常在 numpy 数组上应用 python 函数并不快

于 2019-01-08T17:29:58.730 回答