ホームページ  >  記事  >  バックエンド開発  >  Python リストの最大値/最小値のインデックスを効率的に見つけるにはどうすればよいですか?

Python リストの最大値/最小値のインデックスを効率的に見つけるにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-29 18:24:14626ブラウズ

 How to Efficiently Find the Index of Max/Min Values in Python Lists?

リストの max()/min() によって返される最大/最小値のインデックスの取得

Python の max() とminimax などのアルゴリズムのリストに対する min() 関数では、返される最大値または最小値のインデックスを決定することが多くの場合必要になります。

問題:

返された max() または min() 値に対応するリスト内の要素のインデックス。どの手がその値を生成したかを識別します。

解決策:

min() 値のインデックスを取得するには、次のコードを使用します:

<code class="python">index_min = min(range(len(values)), key=values.__getitem__)</code>

このメソッドは、operator や enumerate などのモジュールの必要性を排除し、また itemgetter() を含むソリューションよりも優れたパフォーマンスを発揮します。

numpy 配列の場合は、次の使用を検討してください。

<code class="python">import numpy as np
index_min = np.argmin(values)</code>

リストが十分に大きく、メモリ消費が許容できる場合、これは高速になります。

ベンチマーク:

以下のベンチマークは、提案されている 2 つのソリューションの効率を比較しています。

[さまざまなメソッドのランタイムのグラフを示す画像]

青い線は純粋な Python ソリューションを表し、赤い線はnumpyを使用しています。黒い線は itemgetter() を使用したリファレンス実装です。

大きなリストの場合、numpy ソリューションの方が大幅に高速です。ただし、リストが小さい場合は、純粋な Python ソリューションの方が効率的である可能性があります。

以上がPython リストの最大値/最小値のインデックスを効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。