Here生成一系列函数。是否有一些调用它们的矢量化方式(即不是显式循环)?
示例:
funcs = np.array(lambda x: 2*x, lambda x: 2.5*x)#in principle more funcs
args = np.array([3.0,4.0])
# numpy array of func[0](arg[0]), func[1](arg[1])
#output : array([6.0,10.0])
假设函数具有相同的特征,但是假设它们是非平凡的(例如,一组曲线的样条函数),并且完全独立于彼此。
答案 0 :(得分:1)
您可以按如下方式使用itertools.imap
:
from itertools import imap
import numpy as np
funcs = np.array([lambda x: 2*x, lambda x: 2.5*x])
args = np.array([3.0,4.0])
answer = np.fromiter(imap(lambda func, arg: func(arg), funcs, args),float)
print(answer)
<强>输出强>
[6.0, 10.0]
答案 1 :(得分:1)
没有导入任何东西,试试这个:
import numpy as np
funcs = np.array(lambda x: 2*x, lambda x: 2.5*x)#in principle more funcs
args = np.array([3.0,4.0])
output = map(lambda x,y:x(y), funcs, args)
它也适用于list
和tuple
。