对于下面的矩阵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)
但有没有办法在一行中完成?
答案 0 :(得分:2)
尝试:
p[:, :, -1] = p[:, :, :-1].sum(axis=2)
如果你没有归零列,你可以:
np.concatenate([p, p.sum(axis=2)[:, :, None]], axis=2)