この記事では、Python言語とNumPyを用いて、配列の行方向・列方向の要素同士の和・差・積を求める方法をソースコード付きで解説します。
行方向・列方向の和・差・積
NumPy配列では2次元配列の行方向・列方向の和・差・積を求める機能が用意されています。
書式
| – | 説明 |
|---|---|
| numpy.sum(x, axis=1) | 行方向の和 |
| numpy.sum(x, axis=0) | 列方向の和 |
| numpy.diff(x) | 行方向の差分 |
| numpy.diff(x, axis=0) | 列方向の差分 |
| numpy.prod(x, axis=1) | 行方向の積 |
| numpy.prod(x, axis=0) | 列方向の積 |
axisに何も指定しない場合は、全ての要素となります。
ソースコード
サンプルプログラムのソースコードです。
# -*- coding: utf-8 -*-
import numpy as np
def main():
# 配列の宣言・初期化
x = np.array([[1, 2, 3], [6, 5, 4]])
# 和
print(np.sum(x)) # 全要素 21
print(np.sum(x, axis=1)) # 行方向 [ 6 15]
print(np.sum(x, axis=0)) # 列方向 [7 7 7]
# 差分
print(np.diff(x)) # 行方向 [ [ 1 1] [-1 -1] ]
print(np.diff(x, axis=0)) # 列方向 [[5 3 1]]
# 積
print(np.prod(x)) # 全要素 720
print(np.prod(x, axis=1)) # 行方向 [ 6 120]
print(np.prod(x, axis=0)) # 列方向 [ 6 10 12]
if __name__ == '__main__':
main()

コメント