卷积#
- 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
, themask
的NDData
将用作mask
争论。- 内核 :
numpy.ndarray
或Kernel
努比·恩达雷还是内核 卷积核。维度的数量应该与数组的数量相匹配,并且维度在所有方向上都应该是奇数。如果是掩码数组,则掩码值将替换为
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
在卷积之前。
- 用于处理输入中的NAN的方法
- preserve_nan : bool ,可选可选的布尔
在执行卷积之后,原本为NaN的像素是否应该再次变为NaN?
- mask :
None
或ndarray
,可选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. IfNone
, no masking will be performed unlessarray
is a masked array. Ifmask
is notNone
andarray
is a masked array, a pixel is masked if it is masked in eithermask
orarray.mask
.- normalization_zero_tol :
float
,可选Python:Float,可选 核是否不同于零的绝对容差。如果内核的和为0到这个精度范围内,它就不能被规范化。默认值为“1e-8”。
- array :
- 返回:
- 结果 :
numpy.ndarray
numpy.ndarray
一种维数与输入数组相同的数组,用核卷积。数据类型取决于输入数组类型。如果数组是浮点类型,则返回数组保持相同的数据类型,否则类型为
numpy.float
.
- 结果 :
笔记
对于掩码数组,掩码值被视为nan。卷积总是在
numpy.float
精度。