我正在尝试这样做:
h = [0.2, 0.2, 0.2, 0.2, 0.2]
Y = np.convolve(Y, h, "same")
Y
看起来像这样:
执行此操作时出现此错误:
ValueError: object too deep for desired array
这是为什么?
我的猜测是因为 convolve
函数不会将 Y
视为一维数组。
最佳答案
屏幕截图中的 Y
数组不是一维数组,它是一个具有 300 行和 1 列的二维数组,如其 shape
为 ( 300, 1)
.
要删除额外的维度,您可以将数组切片为 Y[:, 0]
。通常要将 n 维数组转换为 1D,可以使用 np.reshape(a, a.size)
。
另一个将二维数组转换为一维数组的选项是 numpy.ndarray
模块中的 flatten()
函数,不同之处在于它会复制数组。
关于python - "ValueError: object too deep for desired array"是什么意思以及如何修复它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15923081/