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. Возвращает два числа, если на вход подано одно число.
Смотрите так же: modf, mod, remainder, floor_divide


Примеры

>>> 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)