【发布时间】:2019-06-03 10:08:22
【问题描述】:
我需要整合一个矩阵函数,如下例所示:
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、a3 和 w 是大小相同的数组(a 是样本点,w 是权重)
这是最优化的方式吗?
【问题讨论】:
-
如果你要去
zipf,那么从数组开始是没有意义的。列表中的zip更快。但是zip循环只是np.dot(w, f)。
标签: python-3.x numpy numpy-ndarray numpy-ufunc