Pythonのsum関数を使ってリスト、配列、辞書(ハッシュ)の合計値を計算する方法

スポンサーリンク
スポンサーリンク

イントロダクション

この記事では、Pythonのsum()メソッドについて説明します。

Python の sum() メソッドは、渡されたイテラブルの全要素の和を返す組み込みメソッドです。

Python の sum() 関数

Pythonのsum()メソッドを使用するための構文を見てみましょう。

sum(iterable[, start])

ここで

  • iterableは、合計を計算する必要がある値を含む、任意の反復可能なオブジェクトにすることができます。リスト、タプル、辞書のいずれでもかまいません。
  • start は加算の対象となる初期値です。デフォルトでは、開始値は0に設定されています。

では、このメソッドの使い方と動作を明確に理解するために、いくつかの例を見てみましょう。

sum() をリスト、タプル、複素数、浮動小数点数などに使う。

先に述べたように、sum() メソッドはリスト、タプル、辞書の形で渡された値、つまり任意のイテラブルの値の合計を計算することができます

ただし、イテラブルに何らかの値が含まれていることが条件となり、そうでない場合はエラーが発生します。

ここでは、整数のリスト、タプル、辞書、複素数のリストの要素の和を求めることで、このメソッドに慣れましょう。

#using built-in sum() in Python
 
list1=[1,2,3,4,5]
tuple1=(10,20,30)
dict1={ 0:11, 1:22, 2:33, 3:44 }
complx_nums=[ 4+3j, 7+5j, 8+3j]
 
print("sum of list elements:",sum(list1,5))
print("sum of tuple elements:", sum(tuple1))
print("sum of dictionary keys:", sum(dict1))
print("sum of complex numbers:", sum(complx_nums))

結果を出力すると、以下の様になります。

sum of list elements: 20
sum of tuple elements: 60
sum of dictionary keys: 6
sum of complex numbers: (19+11j)

ここで

  • まず、list1, tuple1, dict1, compx_num を初期化します。
  • 次に、これらのイテラブルを個別に sum() メソッドに渡します。
  • list1の要素の合計を計算するために、開始値を5に設定し、残りの要素には開始パラメータを渡さない(デフォルトで0に設定)。

したがって、希望する出力が得られます。

すべてのケースで、それぞれのイテレート可能な要素の合計が得られます。

Python sum() vs NumPy sum()

PythonのNumPyモジュールには、sum()メソッドが定義されています。

これは、NumPyの配列要素の合計を求めるために使用されます。

しかし、このメソッドは、いくつかの値を含むPythonの他のイテラブルの要素の合計を求めることもできます。

それでは、Pythonの sum()numpy.sum() の出力を、いくつかのイテラブルオブジェクトで比較してみましょう。

#numpy sum() vs python sum()
 
import numpy as np
 
list1=[1,2,3,4,5]
np_arr = np.array([1,2,3,4,5])
 
print("Built-in sum() result:",sum(list1))
print("numpy sum() for np array:",np.sum(np_arr))
print("numpy sum() for list:",np.sum(list1))

結果は以下の通りです。

Built-in sum() result: 15
numpy sum() for np array: 15
numpy sum() for list: 15

見ての通り、リスト list1 に対して sum()np.sum() の両メソッドは同じ結果を返します。

リスト、タプル、辞書などの反復可能なオブジェクトの和を計算する場合は、numpyの sum()メソッドよりも組み込みの sum()メソッドの方がはるかに高速で使い勝手が良いです。

しかし、numpyの配列に関しては、 np.sum() メソッドの方が高速で信頼性が高いように見えます。

これは、単にNumPyがベクトル化されたアプローチを用いているからです。

まとめ

この記事では、Python の組み込みの sum() メソッドについて、また Python の sum() と numpy.sum() メソッドの比較について学びました。

これで、このメソッドについて明確に理解していただけたと思います。

さらに質問がある場合は、以下までお気軽にお問い合わせください。

タイトルとURLをコピーしました