cupyx.scipy.ndimage.generic_filter1d(input, function, filter_size, axis=- 1, output=None, mode='reflect', cval=0.0, origin=0)[source]#

Compute a 1D filter along the given axis using the provided raw kernel.

Unlike the scipy.ndimage function, this does not support the extra_arguments or extra_keywordsdict arguments and has significant restrictions on the function provided.

  • input (cupy.ndarray) – The input array.

  • function (cupy.RawKernel) – The kernel to apply along each axis.

  • filter_size (int) – Length of the filter.

  • axis (int) – The axis of input along which to calculate. Default is -1.

  • output (cupy.ndarray, dtype or None) – The array in which to place the output. Default is is same dtype as the input.

  • mode (str) – The array borders are handled according to the given mode ('reflect', 'constant', 'nearest', 'mirror', 'wrap'). Default is 'reflect'.

  • cval (scalar) – Value to fill past edges of input if mode is 'constant'. Default is 0.0.

  • origin (int) – The origin parameter controls the placement of the filter, relative to the center of the current element of the input. Default is 0.


The result of the filtering.

Return type



The provided function (as a RawKernel) must have the following signature. Unlike most functions, this should not utilize blockDim/blockIdx/threadIdx:

__global__ void func(double *input_line, ptrdiff_t input_length,
                     double *output_line, ptrdiff_t output_length)