Python 调用函数数组

Python 调用函数数组,python,numpy,Python,Numpy,生成一个函数数组。是否有一些向量化的方式(即不是显式循环)调用它们 例如: 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]) 假定这些函数具有相同的特征码,但假定它们是非平凡函数(例如一组曲

生成一个函数数组。是否有一些向量化的方式(即不是显式循环)调用它们

例如:

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])
假定这些函数具有相同的特征码,但假定它们是非平凡函数(例如一组曲线的样条函数),并且彼此完全独立

您可以使用以下方法:

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]

如果不导入任何内容,请尝试以下操作:

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)

它也适用于
列表
元组

我接受了你的答案,但从将iterable转换为numpy数组改为
列表