Pythonの基本的な数値演算に「総和」や「総乗」があります。
リストやタプルなどの数値データを簡易的に計算するのに欠かせない基礎です。
本記事では、そんなPython基礎となる総和と総乗について、詳しくご説明します。
総和
Pythonで総和を計算する3種類の方法をご紹介します。
sum()関数
sum()関数は、リストやタプルなどのイテラブルの要素を左から右へ合計し、総和を返す組み込み関数です。
使用例を以下にご紹介します。
#input
list = [1, 2, 3, 4, 5]
sum = sum(list)
print(sum)
#output
15
以下のように、引数に数値を指定すると、その数値も合計されます。
#input
list = [1, 2, 3, 4, 5]
sum = sum(list, 6)
print(sum)
#output
21
以下のように、引数にrange()関数を指定すると、連続あるいは等差の総和を返します。
#input
#1から10までの整数の総和
sum1 = sum(range(1,11))
print("1から10までの整数の総和:{}".format(sum1))
#1から9までの奇数の総和
sum2 = sum(range(1,10,2))
print("1から9までの奇数の総和:{}".format(sum2))
#2から10までの偶数の総和
sum3 = sum(range(2,11,2))
print("2から10までの偶数の総和:{}".format(sum3))
#output
1から10までの整数の総和:55
1から9までの奇数の総和:25
2から10までの偶数の総和:30
math.fsum()関数
mathモジュールのmath.fsum()関数は、イテラブルの値の浮動小数点数の正確な和を返す関数です。
例を以下に載せます。
#input
#sum()関数
list = [0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1]
sum1 = sum(list)
#math.fsum()関数
import math
sum2 = math.fsum(list)
print("sum()関数による総和:{}".format(sum1))
print("math.fsum()関数による総和:{}".format(sum2))
#output
sum()関数による総和:0.9999999999999999
math.fsum()関数による総和:1.0
sum()関数で生じていた誤差について、math.fsum()関数では生じず、正確な値が計算されていることが分かるかと思います。
numpy.sum()関数
Pythonの外部ライブラリNumPyのnumpy.sum()関数は、配列から指定した軸に沿って総和を計算できます。
#input
# NumPyをインストールしていない場合、インストールする
# pip install numpy
import numpy as np
#3x3で配列定義
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
sum1 = np.sum(x)
sum2 = np.sum(x,axis = 0)
sum3 = np.sum(x,axis = 1)
print("配列の総和:{}".format(sum1))
print("配列の縦軸総和:{}".format(sum2))
print("配列の横軸総和:{}".format(sum3))
#output
配列の総和:45
配列の縦軸総和:[12 15 18]
配列の横軸総和:[ 6 15 24]
総乗
Pythonで総乗を計算する2種類の方法をご紹介します。
math.prod() 関数
mathモジュールのmath.prod()関数は、リストやタプルなどのイテラブルの要素の総乗を返す関数です。
#input
import math
list = [1, 2, 3, 4, 5]
pro = math.prod(list)
print(pro)
#output
120
numpy.prod()関数
Pythonの外部ライブラリNumPyのnumpy.prod()関数は、配列から指定した軸に沿って総乗を計算できます。
#input
# NumPyをインストールしていない場合、インストールする
# pip install numpy
import numpy as np
#3x3で配列定義
x = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
pro1 = np.prod(x)
pro2 = np.prod(x,axis = 0)
pro3 = np.prod(x,axis = 1)
print("配列の総乗:{}".format(pro1))
print("配列の縦軸総乗:{}".format(pro2))
print("配列の横軸総乗:{}".format(pro3))
#output
配列の総乗:362880
配列の縦軸総乗:[ 28 80 162]
配列の横軸総乗:[ 6 120 504]
まとめ
この記事では、Python基礎となる総和と総乗について、ご説明しました。
本記事を参考に、ぜひ試してみて下さい。
参考
Python学習用おすすめ教材
Pythonの基本を学びたい方向け
統計学基礎を学びたい方向け
Pythonの統計解析を学びたい方向け
おすすめプログラミングスクール
Pythonをはじめ、プログラミングを学ぶなら、TechAcademy(テックアカデミー)がおすすめです。
私も入っていますが、好きな時間に気軽にオンラインで学べますので、何より楽しいです。
現役エンジニアからマンツーマンで学べるので、一人では中々続かない人にも、向いていると思います。
無料体験ができますので、まずは試してみてください!