我正在尝试使用 astropy 模块来平滑我的数据。作为一维示例,我尝试了以下代码:
import numpy as np
from astropy import convolution as conv
var1=np.arange(10)
kernel=np.asarray([-1,1,0])
conv.convolve(var1,kernel)
在我的例子中返回:array([ nan, nan, nan, nan, nan, nan, nan, nan, nan, nan])
我认为它应该返回array([0,1,1,1,1,1,1,1,1,1])
。我尝试过使用 var1 数据类型 uint8、int8 和 float32。我也尝试过使用 convolve_fft ,得到了相同的结果。
我熟悉 scipy 的卷积滤波器,但我想在数据中实际存在 NaN 值时使用 astropy,以便平滑它们。
最佳答案
您的内核总和为零,因此 astropy
将发出警告
RuntimeWarning: invalid value encountered in true_divide kernel_internal /= kernel_sum
最终导致所有nans
。
关于python - astropy.convolution.convolve 返回 nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31155735/