Diary

Diary

日々学んだことをアウトプットする場として初めてみました

python: ベクトル内積計算の比較

pythonにおけるベクトルの内積計算

  • numpyのdotを使った内積計算が速いと聞いたので比較してみた
    • 単位は秒
num looping dotting
100万 0.106 0.0016
1000万 1.09 0.012
1億 42.45 0.15

なお、以下のコードを使用した

import time
import numpy as np
import random


def dotting(a, b):
    return a.dot(b)

def looping(a, b):
    D = len(a)
    result = 0
    for i in range(D):
        result += a[i]*b[i]
    return result

if __name__ == '__main__':
    dim = 100_000_000

    a = [random.random() for _ in range(dim)]
    b = [random.random() for _ in range(dim)]
    start_time = time.time()
    looping(a, b)
    print("looping takes: " + str(time.time()-start_time))
    
    a = np.array(a)
    b = np.array(b)
    start_time = time.time()
    dotting(a, b)
    print("dotting takes: " + str(time.time()-start_time))