- reduce
行の数が1つまとめられて、各列の値が加算される。
In [43]: a = np.mat('1 2 3; 4 5 6; 7 8 9') In [44]: a Out[44]: matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) In [46]: np.add.reduce(a) Out[46]: matrix([[12, 15, 18]])
イメージとしては、1列目〜x行目までを列ごとに合計した値。
matrix([[1,↓ 2,↓ 3↓], [4,↓ 5,↓ 6↓], [7,↓ 8,↓ 9↓]]) 12, 15, 18
- accumulate
行の数は変わらず、各列の値が加算される。
In [48]: a Out[48]: matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) In [49]: np.add.accumulate(a) Out[49]: matrix([[ 1, 2, 3], [ 5, 7, 9], [12, 15, 18]])
イメージとしては、2行目の値は、1行目と2行目の値の加算の結果
matrix([[1,↓ 2,↓ 3↓], [4, 5, 6], [7, 8, 9]])
3行目の値は、1行目と2行目の列の値の加算の結果。
Cの配列で書くなら下記のようになる。
a[2][0] = a[0][0] + a[1][0] a[2][1] = a[0][1] + a[1][1] a[2][2] = a[0][2] + a[1][2]