2016-05-26 2 views
3

以下の行列Pについて、各行の最後の要素をその行の他の要素すべての合計に設定します。3D行列の最後の列をNumpyを使用する他のすべての列の合計に設定する

オリジナル行列:

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]]] 

Iは、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) 

ただし、1行で行う方法はありますか?

答えて

2

試してみてください。

p[:, :, -1] = p[:, :, :-1].sum(axis=2) 

あなたがゼロの列なしで起動した場合、あなたはできます

np.concatenate([p, p.sum(axis=2)[:, :, None]], axis=2) 
関連する問題