diff --git a/numpy/lib/arraypad.py b/numpy/lib/arraypad.py index b236cc449d24..630767dc5347 100644 --- a/numpy/lib/arraypad.py +++ b/numpy/lib/arraypad.py @@ -957,12 +957,12 @@ def _as_pairs(x, ndim, as_index=False): # Public functions -def _pad_dispatcher(array, pad_width, mode, **kwargs): +def _pad_dispatcher(array, pad_width, mode=None, **kwargs): return (array,) @array_function_dispatch(_pad_dispatcher, module='numpy') -def pad(array, pad_width, mode, **kwargs): +def pad(array, pad_width, mode='constant', **kwargs): """ Pads an array. @@ -977,10 +977,10 @@ def pad(array, pad_width, mode, **kwargs): ((before, after),) yields same before and after pad for each axis. (pad,) or int is a shortcut for before = after = pad width for all axes. - mode : str or function + mode : str or function, optional One of the following string values or a user supplied function. - 'constant' + 'constant' (default) Pads with a constant value. 'edge' Pads with the edge values of array. diff --git a/numpy/lib/tests/test_arraypad.py b/numpy/lib/tests/test_arraypad.py index a9030e737e74..b7393294ae95 100644 --- a/numpy/lib/tests/test_arraypad.py +++ b/numpy/lib/tests/test_arraypad.py @@ -1249,10 +1249,9 @@ def test_kwargs(mode): np.pad([1, 2, 3], 1, mode, **{key: value}) -def test_missing_mode(): - match = "missing 1 required positional argument: 'mode'" - with pytest.raises(TypeError, match=match): - np.pad(np.ones((5, 6)), 4) +def test_constant_zero_default(): + arr = np.array([1, 1]) + assert_array_equal(np.pad(arr, 2), [0, 0, 1, 1, 0, 0]) @pytest.mark.parametrize("mode", _all_modes.keys())