我需要集成一个矩阵函数,如下例所示:
def func(a1, a2, a3):
return np.array([a1, (a1 + a2), a3])这样做的低效方法是使用三个for循环。不过,我想让它更有效率。我想过使用"map",比如:
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 Ia1、a2、a3和w是大小相同的数组(a是采样点,w是权重)
这是最优化的方式吗?
发布于 2019-01-09 01:29:59
特别是对于这个函数,您可以将所有内容矢量化。
I = w@np.vstack([a1,a1+a2,a3]).T然而,一般而言,它是isn't fast to apply a python function over a numpy array。
https://stackoverflow.com/questions/54096489
复制相似问题