NumPyで行列の全要素の合計を求める方法|sum()関数の使い方を解説
本記事では、NumPyライブラリに用意されているsum()関数を使って、行列(マトリクス)内のすべての要素を合計する方法を解説します。まずrandom()関数でランダムなNumPy行列を生成し、続いてその全要素の合計値を取得する流れを見ていきましょう。
処理の手順(アルゴリズム)
Step 1: numpyをインポートする
Step 2: random()関数を使って m×n のランダムな行列を作成する
Step 3: sum()関数を使って、行列内の全要素の合計を求める
サンプルコード
以下のコードでは、np.random.rand(3, 3)によって3行3列のランダムな行列を生成し、np.sum()で全要素の合計を計算しています。
import numpy as np
matrix = np.random.rand(3,3)
print("The numpy matrix is: \n",matrix)
print("\nThe sum of the matrix is: ", np.sum(matrix))
実行結果
The numpy matrix is:
[[0.66411969 0.43672579 0.48448593]
[0.76110384 0.35869136 0.51509622]
[0.22408857 0.17984855 0.33566272]]
The sum of the matrix is: 3.9598226605128524
ポイント解説
np.sum()は引数に配列を渡すだけで、その配列に含まれるすべての要素の総和を返してくれます。np.random.rand()は0以上1未満の一様乱数で要素を埋めた配列を生成するため、実行するたびに出力される数値は変わります。
また、axis引数を指定すれば、行ごと・列ごとの部分和を求めることも可能です。例えばnp.sum(matrix, axis=0)とすると列方向の合計、axis=1とすると行方向の合計が得られます。大規模な数値データを扱う際にも高速に動作するため、データ分析や機械学習の前処理などで非常に便利な関数です。
-
Pythonの正規表現(Regex)で文字列内の「10+1」パターンをすべて検索する方法
Pythonの正規表現で「10+1」パターンをすべて検索する 与えられた文字列の中から、正規表現パターン「10+1」に一致する部分をすべて見つけたいケースはよくあります。ここでの「10+1」は、「1」の後に「0」が1回以上続き、その後に再び「1」が続く並びを意味します。Pythonでは、標準ライブラリのreモジュールを使うことで、このような検索を簡単に実現できます。 reモジュールにはfindall()という便利なメソッドが用意されています。このメソッドは正規表現パターンと検索対象の文字列を引数に受け取り、マッチしたすべての箇所をリストとして返します。 入力例 10000001 hello
-
Pythonで自然数の合計を求める3つの方法【while文・for文・sum関数】
Pythonでは、自然数の合計を求める方法がいくつかあります。この記事では、whileループ、forループ、そして組み込み関数sum()を使った3つの方法を、具体的なコード例とともにわかりやすく解説します。 方法1:whileループを使う whileループを使用すると、変数iの値を1ずつ増やしながら、その値を累積的に加算していくことができます。以下の例では、最初の10個の自然数(1から10まで)の合計を計算しています。 s,i=0,0 n=10 while i<n: i=i+1 s=s+i print ("sum of first 10 natural num