卷积#

astropy.convolution.convolve(array, kernel, boundary='fill', fill_value=0.0, nan_treatment='interpolate', normalize_kernel=True, mask=None, preserve_nan=False, normalization_zero_tol=1e-08)[源代码]#

用内核卷积数组。

这个程序不同于 scipy.ndimage.convolve 因为它包括对 NaN 价值观。而不是包括 NaN 在卷积计算中数组中的值,这将导致 NaN 卷积阵列上的洞, NaN 使用内核作为插值函数,将值替换为插值值。

参数:
array : NDData or array_likeNDData或Numpy:ARRAY_LIKE

要卷积的数组。它应该是一个1维、2维或3维数组,或者是一个列表或一组表示1维、2维或3维数组的嵌套列表。如果 NDData , the maskNDData 将用作 mask 争论。

内核numpy.ndarrayKernel努比·恩达雷还是内核

卷积核。维度的数量应该与数组的数量相匹配,并且维度在所有方向上都应该是奇数。如果是掩码数组,则掩码值将替换为 fill_value .

boundary : str ,可选Python:字符串,可选
指示如何处理边界的标志:
  • None

    设置 result 当内核扩展到数组边缘之外时,将值设为零。

  • '填充'

    将数组边界外的值设置为 fill_value (默认)。

  • “包装”

    周期性边界 array .

  • '扩展'

    将数组外的值设置为最接近的值 array 价值。

fill_value : float ,可选Python:Float,可选

使用时在数组外部使用的值 boundary='fill'

normalize_kernel : bool ,可选可选的布尔

是否将内核规范化为一的和。

nan_treatment{‘内插’,‘填充’},可选
用于处理输入中的NAN的方法 array
  • 'interpolate'NaN 使用核作为内插函数,将值替换为内插值。请注意,如果内核的总和等于零,NaN插补是不可能的,并且会引发异常。

  • 'fill'NaN 值被替换为 fill_value 在卷积之前。

preserve_nan : bool ,可选可选的布尔

在执行卷积之后,原本为NaN的像素是否应该再次变为NaN?

mask : Nonendarray ,可选PYTHON:无或ndarray,可选

A "mask" array. Shape must match array, and anything that is masked (i.e., not 0/False) will be set to NaN for the convolution. If None, no masking will be performed unless array is a masked array. If mask is not None and array is a masked array, a pixel is masked if it is masked in either mask or array.mask.

normalization_zero_tol : float ,可选Python:Float,可选

核是否不同于零的绝对容差。如果内核的和为0到这个精度范围内,它就不能被规范化。默认值为“1e-8”。

返回:
结果numpy.ndarraynumpy.ndarray

一种维数与输入数组相同的数组,用核卷积。数据类型取决于输入数组类型。如果数组是浮点类型,则返回数组保持相同的数据类型,否则类型为 numpy.float .

笔记

对于掩码数组,掩码值被视为nan。卷积总是在 numpy.float 精度。