Python で numpy.digitalize() を使用して変数をグループ化する方法
多くの場合、変数の値を Python の「ビン」に入れることに興味があるかもしれません。
幸いなことに、これは、次の構文を使用するnumpy.digitalize()関数を使用して簡単に実行できます。
numpy.digitalize(x, bins, right=False)
金:
- x:グループ化する配列。
- bins:ビンの配列。
- right:間隔にビンの右端が含まれるか左端が含まれるかを示します。デフォルトでは、間隔には右端は含まれません。
このチュートリアルでは、この機能の実際の使用例をいくつか示します。
例 1: すべての値を 2 つのビンに配置します
次のコードは、配列の値を 2 つのビンに配置する方法を示しています。
- x < 20 の場合は0
- x ≥ 20 の場合は1
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[20]) array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])
例 2: すべての値を 3 つのビンに配置します
次のコードは、配列の値を 3 つのビンに配置する方法を示しています。
- x < 10 の場合は0
- 10 ≤ x < 20 の場合は1
- x ≥ 20 の場合は2
import numpy as np #create data data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])
right= Trueを指定すると、値は次のビンに配置されることに注意してください。
- x ≤ 10 の場合は0
- 10 < x ≤ 20 の場合は1
- x > 20 の場合は2
各間隔にはビンの右端が含まれます。これは次のようになります。
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20], right= True ) array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])
例 3: すべての値を 4 つのビンに配置します
次のコードは、配列の値を 3 つのビンに配置する方法を示しています。
- x < 10 の場合は0
- 10 ≤ x < 20 の場合は1
- 20 ≤ x < 30 の場合は2
- x ≥ 30 の場合は3
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins n.p. digitize (data, bins=[10, 20, 30]) array([0, 0, 0, 0, 1, 1, 2, 2, 2, 3, 3])
例 4: 各ビンの頻度をカウントする
numpy.digitalize() 関数を補完するもう 1 つの便利な NumPy 関数は、各ビンの頻度をカウントするnumpy.bincount()関数です。
次のコードは、配列の値を 3 つのグループに配置し、各グループの頻度をカウントする方法を示しています。
import numpy as np #createdata data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins bin_data = np. digitize (data, bins=[10, 20]) #view binned data bin_data array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2]) #count frequency of each bin n.p. bincount (bin_data) array([4, 2, 5])
出力からは次のことがわかります。
- ビン「0」には4 つのデータ値が含まれます。
- ビン「1」には2 つのデータ値が含まれています。
- ビン「2」には5 つのデータ値が含まれています。
その他の Python チュートリアルについては、こちらをご覧ください。