2

ある条件(関数で指定された)を満たす最良の値を見つけることができるPythonの組み込み関数は存在しますか?たとえば、このコードの代わりに何か:

def argmin(seq, fn):
    best = seq[0]; best_score = fn(best)
    for x in seq:
        x_score = fn(x)
        if x_score < best_score:
            best, best_score = x, x_score
    return best
4

3 に答える 3

9

「最高」とは最高という意味だと思いますが、その場合の答えは簡単です - max().

それはkeyあなたの関数になる引数を取ります。

max(data, key=score)

当然のことながら、DSM が指摘するように、「最高」が最低を意味する場合は、min()代わりに、ブリキに記載されていることを実行します。

于 2013-05-03T16:37:39.747 に答える
1

一般に、reduce関数が必要ですが、 @Lattyware が前に述べたように、特定の例でmax十分です。

于 2013-05-03T16:39:24.863 に答える
0

1 つのパラメーターの厳密な最適化だけが必要な場合は、最大値と最小値が完全に機能します。そうは言っても、(私の意見では) 最も興味深い問題は、コスト パラメータに従って、少なくとも 2 つのパラメータを同時に最適化することに依存しています。あらゆる種類の非線形最適化については、scipy の最適化モジュールを強くお勧めします。そのためのドキュメントはここにあります。

SLSQP は最も柔軟な最適化アルゴリズムであるため、役立つ場合があります。

于 2013-05-03T16:51:40.463 に答える