我有一个接受矢量输入的函数,例如
f(x) = x[0]*x[1]
我想要一个具有此功能并创建新功能的功能:
g(x,y) = x*y
fcn_translator(f)
# intelligent code here
return g
有人知道该怎么做吗?以前做过这个吗?这个问题的原因是我有一个python包,可以优化形式为f(x,y ...)的函数,但是我调用的函数作用于矢量。
答案 0 :(得分:1)
好像您想要一个带有两个参数的函数,将它们组合成一个向量,然后调用f
:
def g1(x, y):
return f([x, y])
作为更通用的解决方案,函数g2
可以接受任意数量的参数,将它们组合成一个向量,然后调用f
:
def g2(*x):
return f(x)
最后,由于f
需要向量的前两个元素,因此该函数至少需要两个参数:
def g3(x, y, *rest):
return f((x, y) + rest)