numpy.divmod(x1, x2, [out1, out2, ]/, [out=(None, None), ]*, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = <ufunc 'divmod'>

Return element-wise quotient and remainder simultaneously.

New in version 1.13.0.

np.divmod(x, y) is equivalent to (x // y, x % y), but faster because it avoids redundant work. It is used to implement the Python built-in function divmod on NumPy arrays.


x1 : array_like

Dividend array.

x2 : array_like

Divisor array.

out : ndarray, None, or tuple of ndarray and None, optional

A location into which the result is stored. If provided, it must have a shape that the inputs broadcast to. If not provided or None, a freshly-allocated array is returned. A tuple (possible only as a keyword argument) must have length equal to the number of outputs.

where : array_like, optional

Values of True indicate to calculate the ufunc at that position, values of False indicate to leave the value in the output alone.


For other keyword-only arguments, see the ufunc docs.


out1 : ndarray

Element-wise quotient resulting from floor division.

out2 : ndarray

Element-wise remainder from floor division.

See also

Equivalent to Python’s // operator.
Equivalent to Python’s % operator.
Equivalent to divmod(x, 1) for positive x with the return values switched.


>>> np.divmod(np.arange(5), 3)
(array([0, 0, 0, 1, 1]), array([0, 1, 2, 0, 1]))

Previous topic


Next topic