python - astropy.convolution.convolve 返回 nan 值

标签 python numpy convolution astropy

我正在尝试使用 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/

相关文章:

python - 如何使用像 len[arry]-1) 这样的 python 在文本文件中获取最后一行作为索引?

Python 解释器和 Alias 的

python - 自建扩展模块比内置c模块慢

python - 了解 numpy.random.lognormal

python - Numpy Vector (N,1) 维度 -> (N,) 维度转换

c - DSP 的快速二维卷积

python - 在函数内定义变量

python - 修复代码中的 "index out of range"错误

keras - 内核大小等于 1 的 Conv1D 做什么?

machine-learning - 为什么 Tensorflow CNN 使用过多内存?