使用Numpy将3D矩阵中的最后一列设置为所有其他列的总和

2021-10-17 13:40:31 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的矩阵p,我想将每行中的最后一个元素设置为该行所有其他元素的和。例如:

原始矩阵:

In [70]: print P
[[[1 2 3 0]
  [4 1 2 0]
  [7 1 2 0]]
 [[7 2 5 0]
  [8 2 4 0]
  [6 3 1 0]]]

求和后:

In [73]: print P
[[[ 1  2  3  6]
  [ 4  1  2  7]
  [ 7  1  2 10]]
 [[ 7  2  5 14]
  [ 8  2  4 14]
  [ 6  3  1 10]]]

我可以分别求p[0]和p[1]的和,即

In [71]: P[0,:,3] = numpy.sum( P[0,:,:3], axis=1)
In [72]: P[1,:,3] = numpy.sum( P[1,:,:3], axis=1)

但是,有没有一种方法可以在一条线上完成呢?你知道吗