ValueError:使用卷积时对象太深,无法使用所需的数组

Oli*_*s_j 34 python numpy

嗨,我正在尝试这样做:

h =[0.2,0.2,0.2,0.2,0.2];

Y = np.convolve(Y, h, "same")
Run Code Online (Sandbox Code Playgroud)

Y看起来像这样:

截图

这样做我得到这个错误:

ValueError:对象太深,不适合所需的数组

为什么是这样 ?

我的猜测是因为某种程度上,卷积函数不会将Y视为一维数组.

use*_*342 48

Y你的屏幕截图阵列不是一维数组,它是一个二维数组与300行1列,其指示shape的存在(300, 1).

要将其转换为1D数组,请将其切片为Y[:, 0]或重新整形np.reshape(a, len(a)).

将2D数组转换为1D的替代方法是flatten()来自numpy.ndarray模块的功能,不同之处在于它创建了数组的副本.

  • 要将该数组转换为1D数组,您还可以使用squeeze() (5认同)

小智 9

np.convolve()采用一维数组.您需要检查输入并将其转换为1D.

您可以使用np.ravel(),将数组转换为一维.