调用函数数组

时间:2016-02-22 11:04:52

标签: python numpy

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])

假设函数具有相同的特征,但是假设它们是非平凡的(例如,一组曲线的样条函数),并且完全独立于彼此。

2 个答案:

答案 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)

它也适用于listtuple