numpy.lib.array_utils.normalize_axis_index#

lib.array_utils.normalize_axis_index(axis, ndim, msg_prefix=None)#

Normalizes an axis index, axis, such that is a valid positive index into the shape of array with ndim dimensions. Raises an AxisError with an appropriate message if this is not possible.

Used internally by all axis-checking logic.

Parameters:
axisint

The un-normalized index of the axis. Can be negative

ndimint

The number of dimensions of the array that axis should be normalized against

msg_prefixstr

A prefix to put before the message, typically the name of the argument

Returns:
normalized_axisint

The normalized axis index, such that 0 <= normalized_axis < ndim

Raises:
AxisError

If the axis index is invalid, when -ndim <= axis < ndim is false.

Examples

>>> import numpy as np
>>> from numpy.lib.array_utils import normalize_axis_index
>>> normalize_axis_index(0, ndim=3)
0
>>> normalize_axis_index(1, ndim=3)
1
>>> normalize_axis_index(-1, ndim=3)
2
>>> normalize_axis_index(3, ndim=3)
Traceback (most recent call last):
...
numpy.exceptions.AxisError: axis 3 is out of bounds for array ...
>>> normalize_axis_index(-4, ndim=3, msg_prefix='axes_arg')
Traceback (most recent call last):
...
numpy.exceptions.AxisError: axes_arg: axis -4 is out of bounds ...