Автор оригинала: Team Python Pool.
Функция Numpy Digitize() С Примерами в Python
Здравствуйте, программисты, в сегодняшней статье мы обсудим функцию numpy digitize() в python, доступную вместе с модулем Numpy. Библиотека Numpy в Python содержит многомерную матрицу и массив структур данных. Таким образом, все связанные с массивом аспекты становятся проще и проще с использованием различных функций. Поскольку Numpy расшифровывается как Numerical Python, мы можем использовать его для различных математических операций с массивами.
NumPy Digitize() используется для получения индексов ячеек, к которым принадлежит каждое из этих значений во входном массиве. Проще говоря, эта функция возвращает ячейки, к которым принадлежит каждое из значений массива. Этот метод имеет решающее значение для разделения многих массивов в группу массивов в соответствии с их значениями. Лучшим примером этого было бы разделение студентов на классы А, В, С в соответствии с их оценками на экзамене.
Прежде чем мы начнем с этого метода и его способов использования, позвольте мне просто кратко рассказать вам о том, что такое метод Numpy digitize ().
Что такое Numpy digitize()
Функция < strong>Numpy digitize() помогает получить индексы ячейки, к которой принадлежит каждое значение входного массива, и возвращает массив, содержащий индексы ячейки. Входной массив, содержащий значения, и выходной массив, содержащий индексы ячеек, могут быть многомерными. Бункеры являются 1D и монотонными. np.digitize() реализован как np.searchsorted. Это означает, что двоичный поиск используется для связывания значений, которые лучше масштабируются для большего числа ячеек. Кроме того, он устраняет требование, чтобы входной массив был 1-мерным.
Синтаксис:
np.digitize(Array, Bin, Right)
Параметры
Array означает входной массив или массив, подлежащий бинированию. Bin – это массив ячеек. Right указывает, включают ли интервалы правый или левый край. По умолчанию используется правый край, не включенный в комплект.
Тип возврата:
Массив, содержащий индексы ячеек
Примеры функции оцифровки Numpy
Пример:
# import numpy import numpy as np .array([1.2, 2.4, 3.6, 4.8]) .array([1.0, 1.3, 2.5, 4.0, 10.0]) # using np.digitize() method .digitize(a, bins) print(g)
Выход:
[1 2 3 4]
В приведенном выше примере функция np.digitize возвращает массив , содержащий индексы всех значений ячеек.
Существуют различные способы реализации функции Numpy digitize() в Python –
- Размещение значений в двух ячейках
- Все значения в трех ячейках
- Подсчет частоты работы бункеров
Размещение значений в двух ячейках с помощью Numpy digitize()
ПРИМЕР:
import numpy as np #creating data d = [2, 4, 4, 7, 12, 14, 19, 20, 24, 31, 34] #placing values into bins np.digitize(d, bins=[20])
ВЫХОД:
array([0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1])
ОБЪЯСНЕНИЕ:
В приведенном выше примере показано, как поместить значения массива в две ячейки. эти два бункера определяются как – 1. 0, если x < 20 2. 1, если x. Таким образом, он возвращает массив с индексом 0 для всех значений ниже 20 и 1 для значений выше 20.
Все значения помещены в три ячейки
ПРИМЕР:
import numpy as np #create data d = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins np.digitize(d, bins=[10, 20])
ВЫХОД:
array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2])
ОБЪЯСНЕНИЕ:
Все значения данных в приведенном выше примере помещаются в три ячейки. Bins определяется в этом примере следующим образом: 1. 0, если x ≤ 10 2. 1 , если 10 < x ≤ 20 3. 2, если x > 20, Он возвращает массив с индексом 0 для значений ниже 10 и 1 для значений до 20 и 2 для значений выше 20. Поскольку синтаксис np.digitize() по умолчанию исключает правое ребро, значение 20 является индексом 2 в данном массиве. Если мы установим значение, то индекс 20 будет возвращен как 1.
Подсчет частоты каждого бина с помощью функции numpy.digitize() в Python
ПРИМЕР:
import numpy as np #create data d = [2, 4, 4, 7, 12, 14, 20, 22, 24, 31, 34] #place values into bins.digitize(d, bins=[10, 20]) #view binned data bin_d #count frequency of each bin np.bincount(bin_d)
ВЫХОД:
array([0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2]) array([4, 2, 5])
ОБЪЯСНЕНИЕ:
numpy.bincount() – это очень полезный метод, который дополняет функцию numpy.digitize (). Он подсчитывает частоту каждого бункера. В этом примере сначала мы помещаем все значения в три ячейки, а затем подсчитываем частоту каждого. Таким образом, выходные данные задаются как – Count 4 as Bin “0” содержит 4 значения данных. Count 2 as Bin “1” содержит 2 значения данных. Count 5 as Bin “2” содержит 5 значений данных.
Надо Читать:
- Как преобразовать строку в нижний регистр в
- Как вычислить Квадратный корень
- Пользовательский ввод | Функция ввода () | Ввод с клавиатуры
- Лучшая книга для изучения Python в 2020 году
Вывод
Мы видели различные способы размещения переменных в ячейки с помощью функции numpy.digitize() в python. Также я видел использование функции numpy.bincount() и то, как она дополняет функцию digitize. Функция Numpy digitize() вызывает ValueError, если ячейки не являются монотонными. И вызывает TypeError, если тип входного массива сложный. Надеюсь, что эта статья поможет вам использовать функцию digitize() по мере необходимости.
Попробуйте запустить программы на вашей стороне и дайте нам знать, если у вас есть какие-либо вопросы.
Счастливого кодирования!