Numpy配列とリストの計算時間を比べてみます。
リストを使う
リストを使って足し算を行う場合は以下の様に書きます。
a = [1,2,3,4,5] b = [6,7,8,9,10] for i in range(5): print(a[i]+b[i])
numpyの配列を使う
nuppyの配列を使って同じ計算をしてみます。
import numpy as np e = np.array([1,2,3,4,5]) f = np.array([6,7,8,9,10]) print(e+f)
こちらの方がシンプルにかけます。
計算時間の比較
データ数を増やして速度を比べてみましょう。
1から100万までの数を加算するのにかかる時間を、リスト、numpyのそれぞれで計測します。
import numpy as np import time NUMBER_OF_CALC = 1000000 ### リストの演算 start = time.time() # 1..NUMBER_OF_CALCまでの各整数を持つlistを作る int_list_A = list(range(NUMBER_OF_CALC)) int_list_B = list(range(NUMBER_OF_CALC)) # zipを使い、リストAとリストBのそれぞれの要素を加算する result = [x+y for x,y in zip(int_list_A,int_list_B)] erasped_time = time.time() - start print(erasped_time) ### Numpy Arrayの演算 start = time.time() # numpyのarangeを使い、1..NUMBER_OF_CALCまでの各整数を持つarrayを作る int_array_A = np.arange(NUMBER_OF_CALC) int_array_B = np.arange(NUMBER_OF_CALC) result = int_array_A + int_array_B erasped_time = time.time() - start print(erasped_time)
0.0874640941619873 0.01407480239868164
8倍ほどリストよりもnumpyの方が速いことが分かりました。
素晴らしい速度ですね。
おわり。