イントロダクション
この記事では、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() メソッドの比較について学びました。
これで、このメソッドについて明確に理解していただけたと思います。
さらに質問がある場合は、以下までお気軽にお問い合わせください。