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数组改为列表
。