我有一个函数实例数组,以及几个适用于这些实例的参数数组。函数实例数组可以是任意大小。定义如下(是的,每个函数都使用相同的参数):
fcn1(a, b, c)
fcn2(a, b, c)
每个函数参数都是一个浮点数组,例如:
a = numpy.array([1., 2., 3.])
b = numpy.array([1., 2., 3.])
c = numpy.array([1., 2., 3.])
函数实例数组如下所示:
[<function fcn1 at 0x030A44F0> <function fcn2 at 0x030A4530>]
我正在尝试将函数参数映射到每个数组实例。
到目前为止,我尝试过一些简单的事情:
for f in fcn:
print f(a, b, c)
但是构造函数的方式是,它们返回X个数组,其中X是a
,b
和c
中每个元素的数量。例如,如果我只是打电话:
fcn1(a, b, c)
它将返回(注意每个输入参数中的三个元素,返回三个数组):
[array([0.2343, 0.4943, ..., 0.8943, 0.7115]), array([0.2343, 0.4853, ..., 0.8555, 0.1915]), array([0.7773, 0.1343, ..., 0.8045, 0.9994])]
所以当我运行简单循环时会发生两个数组:
[array([0.2343, 0.4943, ..., 0.8943, 0.7115]), array([0.2343, 0.4853, ..., 0.8555, 0.1915]), array([0.7773, 0.1343, ..., 0.8045, 0.9994])]
[array([0.2343, 0.4943, ..., 0.8943, 0.7115]), array([0.2343, 0.4853, ..., 0.8555, 0.1915]), array([0.7773, 0.1343, ..., 0.8045, 0.9994])]
如何优雅地将参数应用于函数实例?
答案 0 :(得分:2)
如果我正确阅读,您希望最终得到一个包含功能结果列表列表的数据结构。
function_result_set = [func(*argument_list) for func in function_list]
只要每个函数都能使用len(argument_list)
个参数,这将适用于任意长度的函数序列(或实际上是callables,例如类)。
答案 1 :(得分:1)
不确定我是否正确理解你,但你只是想要:
for f in fcn:
for ix in range(len(a)):
print f(a[ix], b[ix], c[ix])