Pythonで最大または最小のアイテムを見つける方法は?
この記事は、Pythonで最大または最小のアイテムを見つけたい開発者を対象としています。使用するいくつかの方法を示し、あなたに最適な方法を結論付けます。
方法– 1:リストのスライスアプローチ
単一の最小または最大のアイテムを検索しようとしている場合、つまりN =1の場合は、min()とmax()を使用する方が高速です。
ランダムな整数を生成することから始めましょう。
import random # Create a random list of integers random_list = random.sample(range(1,10),9) random_listのランダムリストを作成します
出力
[2, 4, 5, 1, 7, 9, 6, 8, 3]
最小で最大のアイテムの検索(N =1)
# Find the smallest number (N=1) min ( random_list )
出力
1
# Find the largest number (N=1) max ( random_list )
出力
9
3つの最小および最大のアイテムの検索(N =3)
同様に、Nがコレクション自体とほぼ同じサイズである場合、通常、最初にそれを並べ替えてNのスライスを取得する方が高速です。
# lets get the nsmallest using a slice approach(N=3) sorted(random_list)[:3]を使用してnsmallestを取得します
出力
[1, 2, 3]
# lets get the nlargest using a slice approach(N=3) sorted(random_list)[-3:]を使用して最大値を取得します
出力
[7, 8, 9]
メソッド– 2:リスト上のheapqメソッド
heapqモジュールには、nlargest()とnsmallest()の2つの関数があり、nsmallestまたはnlargestアイテムを検索するために使用できます。
import heapq import random random_list = random.sample(range(1,10),9) # nsmallest items (N=3) heapq.nsmallest(3,random_list)
出力
[1, 2, 3]
# nlargest items (N=3) heapq.nlargest(3,random_list)
出力
[9, 8, 7]
もう少し複雑なデータがある場合、heapq関数には使用できる重要なパラメーターがあります。
import heapq grandslams = [ {'name':'Roger Federer','titles':20}, {'name:'Rafel Nadal','titles':19}, {'name':'Novak Djokovic','titles':17}, {'name':'Andy Murray','titles':3},] # Players with less titles (N=3) less = heapq.nsmallest(3,grandslams, key = lambdas:s['titles']) less
出力
[{'name': 'Andy Murray', 'titles': 3}, {'name': 'Novak Djokovic', 'titles': 17}, {'name': 'Rafel Nadal', 'titles': 19}]
# Players with highest titles (N=3) more = heapq.nlargest(3,grandslams,key = lambdas:s['titles']) more
出力
[{'name': 'Roger Federer', 'titles': 20}, {'name': 'Rafel Nadal', 'titles': 19}, {'name': 'Novak Djokovic', 'titles': 17}]
DataFrameから最大および最小のNを検索します。
ええと、世界はCSVファイルで構成されています。そうです!。
したがって、Python開発のある時点で、CSVと明らかにDataFrameに遭遇すると想定するのは非常に安全です。
DataFrameから最大/最小のNを見つけるためのいくつかの方法を紹介します。
最初のメソッドでは、sort_values()メソッドを使用して値を並べ替え、headメソッドを使用して値を取得します。
import pandas as pd import io # Define your data data = """ player,titles Djokovic,17 Nadal,19 Federer,20 Murray,3 """ throwaway_storage = io.StringIO(data) df = pd.read_csv(throwaway_storage,index_col = "player")
# nsmallest (N = 3) df.sort_values("titles").head(3)
出力
player title _______________ Murray 3 Djokovic 17 Nadal 19
# nlargest (N = 3) df.sort_values("titles",ascending = False).head(3)
出力
player title _______________ Federer 20 Nadal 19 Djokovic 17
行を並べ替えて.head()メソッドを使用する代わりに、.nsmallest()メソッドと.nlargest()メソッドを呼び出すことができます。
df.nsmallest(3,columns="titles")
出力
player title _______________ Murray 3 Djokovic 17 Nadal 19
df.nlargest(3,columns = "titles")
出力
player title _______________ Federer 20 Nadal 19 Djokovic 17
結論
比較的少数のアイテムを検索しようとしている場合は、nlargest()関数とnsmallest()関数が最適です。
単一の最小または最大のアイテム(N =1)を単に見つけようとしている場合は、min()およびmax()を使用する方が高速です。
同様に、Nがコレクション自体とほぼ同じサイズである場合、通常、最初にそれを並べ替えてスライスを取得する方が高速です。
結論として、nlargest()とnsmallest()の実際の実装は、Pythonの動作に適応し、ユーザーに代わってこれらの最適化の一部を実行します。
-
Windows 10 で最大サイズのファイルを簡単に見つける方法
十分なディスク容量がないために、コンピューターが正常に動作しないか、速度が低下する場合があります。この場合、ディスク上の大きなファイルを見つけて別のストレージ デバイスに移動するか、それらを削除してディスク領域を解放することをお勧めします。 関連記事: ディスク クリーンアップを実行してスペースを解放してください。 ディスク上の大きなファイルを手動で検索するには、多くの時間と労力がかかる場合があります。これを回避するには、システム上の大きなファイルを簡単かつ簡単に見つけるのに役立つ以下の簡単な手順に従うことができます. ステップ 1. よく使用されるフォルダのサイズを調べます。 まず
-
Windows 10 で最大のファイルを見つける方法
空き容量が少ないというメッセージが表示され、メモリを解放するのが難しい場合は、Windows 10 で大きなファイルを見つけるのが最善の方法です。 しかし、PC で大きなファイルを検索するにはどうすればよいでしょうか? さて、Windows 10 で大きなファイルを見つける方法はいくつかあります。組み込みツールを使用するか、Disk Analyzer pro などのサードパーティ製アプリを使用できます。このアプリは、すぐにタスクを実行します。さらに、ジャンクファイル、一時ファイル、および重複をきれいにするのに役立ちます。無駄なストレージ スペースのもう 1 つの一般的な理由は、PC の