将功能应用于np.ndarray?

时间:2017-01-04 16:38:31

标签: python numpy lambda

我有一个numpy数组,例如a(a.shape =(2,20,50,50))。我想在第二轴上应用一个函数。

我的功能是仅沿第二轴的每个元素之间的差异,即

res = a[:,i+1,:,:] - a[:,i,:,:] for i in range(20)

我已经尝试过使用lambda函数,但输出是一个列表。我希望结果的形状与a相同。这意味着我想要res.shape =(2,20,50,50)。

如果有人引导我,我很感激。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

您不需要申请功能。只需直接减去它们。

res = a[:,1:,:,:]-a[:,0:-1,:,:]

此外,你不会得到(2,20,50,50)ndarray但是(2,19,50,50)。