【问题标题】:np.subtract along an axisnp.subtract 沿轴
【发布时间】:2021-12-13 04:14:48
【问题描述】:

有没有一种简单的方法可以沿二维数组的轴进行减法?

a=np.array([[610,550],[400,360]])
np.sum(a,axis=0) # Results in  array([1010, 910])

np.subtract(a[0],a[1]) # Results in array([210, 190])
np.subtract(a,axis=0) # Errors out obviously

【问题讨论】:

  • np.subtract 类似于np.add,而不是np.sum
  • 恕我直言,np.subtract(a[0], a[1]) 很简单
  • 也许你想要np.diff(a, axis=0)

标签: python numpy subtraction


【解决方案1】:

np.subtract 减去两个数组的对应元素。沿轴减去两个数组是没有意义的,因为它发生在每个元素上,无论其相对于其邻居的位置如何。请注意,在您的示例中,np.sum 只接受一个数组,而不是两个。

要查找单个数组的连续元素之间的差异,请使用 np.diff,它完全按照您的预期接受 axis 参数

np.diff(a, axis=0)

您可以通过在沿所需轴切成1::-1 的数组上调用减法来手动实现diff。在您的示例中:

a[1:] - a[:-1]

【讨论】:

猜你喜欢
  • 2019-06-30
  • 2015-03-10
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 2012-08-29
  • 2018-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多