OKを生成するためにそれを適用し、私はタイトルにそれを説明する方法を知りませんでしたが、ここでは(Pythonの)私がしようとしているものです:私が持っているリストから機能を選択すると、アレイに
初期化された関数のリスト、例えば[foo, bar]
、そしてすべての入力に対して、私は使用する関数の関連するインデックスを持っています。入力配列X
、インデックス配列I
が与えられたら、上の条件を仮定して出力配列y
を生成する必要があります。
私のソリューション:
## These are just example methods, in reality there are complex functions
def foo(x):
return x
def bar(x):
return x - 1
f = [foo, bar]
X = [1, 2, 3, 1, 2, 5, 3, 6, 8, 2, 1, 4, 5, 7, 8, 1]
I = [0, 1, 0, 1, 1, 1, 1, 0, 0, 1 ,0, 0, 0, 0, 0, 1]
solution_functions = numpy.take(f, I)
solution_result = [solution_functions[idx](X[idx]) for idx in I]
私の質問はそれを行うための、より効率的な方法がある - 問題はX
は、要素の数千人を持っており、f
の関数は本当に複雑であれば、私が作成しなければならないことですあまりにも多くのオブジェクト