Numpy 配列をフィルタリングする方法 (4 つの例)
次のメソッドを使用して、NumPy 配列の値をフィルタリングできます。
方法 1: 単一の条件に基づいて値をフィルターする
#filter for values less than 5 my_array[my_array < 5 ]
方法 2: 「OR」条件を使用して値をフィルターする
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )]
方法 3: 「AND」条件を使用して値をフィルターする
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )]
方法 4: リストに含まれる値をフィルターする
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])]
このチュートリアルでは、次の NumPy 配列を使用して各メソッドを実際に使用する方法を説明します。
import numpy as np
#create NumPy array
my_array = np. array ([1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
#view NumPy array
my_array
array([ 1, 2, 2, 3, 5, 6, 7, 10, 12, 14])
例 1: 条件に基づいて値をフィルターする
次のコードは、単一の条件に基づいて NumPy 配列値をフィルターする方法を示しています。
#filter for values less than 5 my_array[(my_array < 5 )] array([1, 2, 2, 3]) #filter for values greater than 5 my_array[(my_array > 5 )] array([6,7,10,12,14]) #filter for values equal to 5 my_array[(my_array == 5 )] array([5])
例2: 「OR」条件を使用して値をフィルタリングする
次のコードは、「OR」条件を使用して NumPy 配列の値をフィルターする方法を示しています。
#filter for values less than 5 or greater than 9 my_array[(my_array < 5 ) | (my_array > 9 )] array([ 1, 2, 2, 3, 10, 12, 14])
このフィルターは、5 未満または9 を超える NumPy 配列値を返します。
例 3: 「AND」条件を使用して値をフィルターする
次のコードは、「AND」条件を使用して NumPy 配列の値をフィルターする方法を示しています。
#filter for values greater than 5 and less than 9 my_array[(my_array > 5 ) & (my_array < 9 )] array([6, 7])
このフィルターは、NumPy 配列から 5 より大きく 9より小さい値を返します。
例 4: リストに含まれる値をフィルタリングする
次のコードは、リストに含まれる NumPy 配列値をフィルターする方法を示しています。
#filter for values that are equal to 2, 3, 5, or 12 my_array[np. in1d (my_array, [2, 3, 5, 12])] array([ 2, 2, 3, 5, 12])
このフィルターは、2、3、5、または 12 に等しい値のみを返します。
注: NumPy in1d()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、Python で他の一般的なフィルタリング操作を実行する方法について説明します。
特定の文字列を含む Pandas DataFrame 行をフィルタリングする方法
複数の条件で Pandas DataFrame をフィルタリングする方法
Pandas DataFrame で「NOT IN」フィルターを使用する方法