Как связать переменные в Python с помощью numpy.digitize()


Часто вам может быть интересно поместить значения переменной в «корзины» в Python.

К счастью, это легко сделать с помощью функции numpy.digitize() , которая использует следующий синтаксис:

numpy.digitize(x, bins, right=False)

куда:

  • x: Массив для объединения.
  • bins: Массив бинов.
  • справа: указывает, включают ли интервалы правый или левый край ячейки. По умолчанию интервал не включает правый край.

В этом руководстве показано несколько примеров использования этой функции на практике.

Пример 1. Поместите все значения в две корзины

В следующем коде показано, как поместить значения массива в две ячейки:

  • 0 , если х < 20
  • 1 , если х ≥ 20
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34]

#place values into bins
np.digitize (data, bins=[20])

array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])

Пример 2. Поместите все значения в три корзины

В следующем коде показано, как поместить значения массива в три ячейки:

  • 0 , если х < 10
  • 1 , если 10 ≤ х < 20
  • 2 , если х ≥ 20
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.digitize (data, bins=[10, 20])

array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])

Обратите внимание, что если мы укажем right= True , значения будут помещены в следующие ячейки:

  • 0 , если х ≤ 10
  • 1 , если 10 < х ≤ 20
  • 2 , если х > 20

Каждый интервал будет включать правый край ячейки. Вот как это выглядит:

import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.digitize (data, bins=[10, 20], right= True )

array([0, 0, 0, 0, 1, 1, 1, 2, 2, 2, 2])

Пример 3. Поместите все значения в четыре корзины

В следующем коде показано, как поместить значения массива в три ячейки:

  • 0 , если х < 10
  • 1 , если 10 ≤ х < 20
  • 2 , если 20 ≤ х < 30
  • 3 , если х ≥ 30
import numpy as np

#create data
data = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34]

#place values into bins
np.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

#create data
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
np.bincount (bin_data)

array([4, 2, 5])

Вывод говорит нам, что:

  • Бин «0» содержит 4 значения данных.
  • Бин «1» содержит 2 значения данных.
  • Бин «2» содержит 5 значений данных.

Найдите больше руководств по Python здесь .

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.