Python 如何在numpy中沿轴应用操作

Python 如何在numpy中沿轴应用操作,python,numpy,axis,Python,Numpy,Axis,我有一个N维数组,我想返回另一个相同形状的数组,其中的值沿着给定的轴逐渐累积。我的尝试如下所示,但它抛出了一个错误,因为沿_轴放置并不像我想象的那样。如何正确书写 def accumulate(data, axis): rez = np.zeros(data.shape) for i in range(1, data.shape[axis]): tmp1 = np.take(rez, i-1, axis=axis) tmp2 = np.take(r

我有一个N维数组,我想返回另一个相同形状的数组,其中的值沿着给定的轴逐渐累积。我的尝试如下所示,但它抛出了一个错误,因为
沿_轴放置
并不像我想象的那样。如何正确书写

def accumulate(data, axis):
    rez = np.zeros(data.shape)
    for i in range(1, data.shape[axis]):
        tmp1 = np.take(rez, i-1, axis=axis)
        tmp2 = np.take(rez, i, axis=axis)
        tmpsum = tmp1 + tmp2
        np.put_along_axis(rez, i, tmpsum, axis=axis)
    return rez

听起来您只是在寻找
np.cumsum

data.cumsum(axis=axis)

将仅返回该值。

无法在3D阵列上运行
数据。你能添加mcve吗?@Divakar什么是mcve?为什么你需要一个最小的例子。如果我有一个有效的示例代码,我就不需要帮助了。这是一个很小的例子,除了包含
沿\u轴放置\u的线
之外,其他一切都可以工作。问题是如何重写该行,使其按我所说的那样工作。
无法在3D阵列上运行数据。。正是我想要的,谢谢!我仍然对如何实现
cumsum
或其他类似函数感兴趣,但这并不太重要