numpy.divmod
numpy.divmod(x1, x2, *ufunc_args) = <ufunc 'divmod'>
Функция divmod() возвращает результат целочисленного деления и остаток от деления значений массива x1 на значения массива x2.
Данная функция является эквивалентной команде (x // y, x % y)
и является аналогом функции divmod
в Python но в NumPy вычисление результата выполняется гораздо быстрее. Функция перегружена таким образом, что бы вычисление выполнялось поэлементно в случае одинаковых форм входных массивов, а в случае разных форм, выполнялся механизм транслирования массивов.
К тому же, numpy.divmod()
является универсальной функцией, т.е. поддерживает целый ряд параметров, которые позволяют оптимизировать ее работу в зависимости от специфики алгоритма, в котором она необходима.
-
- x1, x2 - числа, массивы или подобные массивам объекты
- Входные данные, где x1 - делимое, x2 - делитель.
- *ufunc_args - аргументы универсальной функции
- Аргументы, позволяющие настроить и оптимизировать работу функции (подробнее см. универсальные функции).
-
- результат - два массива NumPy или два вещественных числа
- Первый массив состоит из вычисленных значений целочисленного деления, второй из остатков от деления значений массива x1 на значения массива x2. Возвращает два числа, если на вход подано одно число.
Примеры
>>> import numpy as np
>>>
>>> # Возвращает 0 если x2 = 0:
... np.divmod(10, 0)
__main__:1: RuntimeWarning: divide by zero encountered in divmod
(0, 0)
>>>
>>> a = np.array([10, -10, 10, -10])
>>> b = np.array([3, 3, -3, -3])
>>>
>>> np.divmod(a, b)
(array([ 3, -4, -4, 3], dtype=int32), array([ 1, 2, -2, -1], dtype=int32))
>>>
>>> np.divmod(0.23, 0.07)
(3.0, 0.01999999999999999)