Як групувати змінні в python за допомогою numpy.digitize()
Часто вам може бути цікаво помістити значення змінної в «комірки» в Python.
На щастя, це легко зробити за допомогою функції numpy.digitize() , яка використовує такий синтаксис:
numpy.digitize(x, bins, right=False)
золото:
- x: масив для групування.
- бункери: масив бункерів.
- справа: вказує, чи охоплюють інтервали правий чи лівий край кошика. За замовчуванням інтервал не включає правий край.
Цей підручник демонструє кілька прикладів практичного використання цієї функції.
Приклад 1: Помістіть усі значення в два контейнери
У наведеному нижче коді показано, як розмістити значення масиву в два контейнери:
- 0 , якщо x < 20
- 1 , якщо x ≥ 20
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: Розмістіть усі значення в трьох бункерах
У наступному коді показано, як розмістити значення масиву в три контейнери:
- 0 , якщо x < 10
- 1 , якщо 10 ≤ x < 20
- 2 , якщо x ≥ 20
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 , тоді значення будуть розміщені в наступних ящиках:
- 0 , якщо x ≤ 10
- 1 , якщо 10 < x ≤ 20
- 2 , якщо x > 20
Кожен інтервал включатиме правий край контейнера. Ось як це виглядає:
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: Розмістіть усі значення в чотирьох бункерах
У наступному коді показано, як розмістити значення масиву в три контейнери:
- 0 , якщо x < 10
- 1 , якщо 10 ≤ x < 20
- 2 , якщо 20 ≤ x < 30
- 3 , якщо x ≥ 30
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, яка доповнює функцію numpy.digitize(), — це функція numpy.bincount() , яка підраховує частоти кожного біну.
Наступний код показує, як розмістити значення масиву в три групи, а потім підрахувати частоту кожної групи:
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 тут .