NumPyには、ndarrayの全要素を足し合わせるnp.sum
関数があります。この関数を使うことで、要素全ての和を求めることや、列ごとや行ごとに和を求めることもできます。
この関数は頻繁に使われるものです。この記事を通して使い方をしっかりマスターしておきましょう。
np.sum関数
書式としてnumpy.sum
とnumpy.ndarray.sum
の2つが存在します。最初はnumpy.sum
から解説していきますが、基本的な使い方は全く一緒です。
numpy.sum
まずはAPIドキュメントからみていきましょう。
np.sum(a, axis=None, dtype=None, out=None, keepdims=None)
params:
パラメータ名 |
型 |
概要 |
a |
配列に相当するオブジェクト |
和を求めたい配列を指定します。 |
axis |
Noneまたはint またはintのタプル |
(省略可能)初期値None どの軸方向に要素を足し合わせていくかを指定します。Noneの時は全ての要素を足し合わせます。 |
dtype |
データ型 |
出力する値のデータ型と、計算を行う際に用いるデータ型を指定します。 |
out |
ndarray |
(省略可能)初期値None 結果を代入するための配列を指定します。 |
keepdims |
bool値 |
(省略可能)初期値False 入力された配列の次元と出力する配列の次元を合わせるかどうかを指定します。次元を合わせておくとブロードキャストを適用させる際に便利です。 |
initial |
scalar |
(省略可能)初期値no value。 合計の開始値 |
where |
array_like of bool |
(省略可能)初期値no value。合計に含める要素 |
returns:
和を要素とする配列を返します。
引数としては返す値のdtype
と計算する軸方向を指定するaxis
の2つが引数の主なものになってきます。和を一旦出した後、元の配列に対してその和を使って処理をほどこしたい場合はブロードキャストが適用できるようにkeepdims=True
にしておきます。keepdims
は要素が1となった次元でも削除したりせずにそのまま保持しておくように指定できる引数です。
axis
の使い方については以下の記事を参考にしてみてください。
NumPyの軸(axis)と次元数(ndim)とは何を意味するのか - DeepAge /features/numpy-axis.html
axis
を指定すると、指定した軸(axis)の方向に和を出すよう計算させることができます。引数out
に関しては滅多に使われることがないため説明は割愛します。
numpy.ndarray.sum
a
がndarray
であれば、a.sum
の形で使われる関数です(厳密にはaの属性となりますが)。
a
以外の他の引数は全く一緒となります。
サンプルコード
実際のコードを通して使い方を覚えていきましょう。
numpy.sum
まずは全ての要素を足し合わせます。
次に、引数axis
を指定します。axis
を指定することで、2次元以上の配列のとき特定の次元方向に要素を足し合わせていくことができます。
axis
を指定した状態でkeepdims=True
にすると次元が保存され、3次元配列の和であれば3次元配列が出力されます。
次にdtype
を指定します。
numpy.ndarray.sum
こちらでも同じことをしていきます。
参考