python中的向量化和for
阿新 • • 發佈:2018-12-17
import numpy as np import time #引入庫 a = np.random.rand(1000000) b = np.random.rand(1000000) #隨機陣列 tic = time.time() c= np.dot(a, b) #矩陣乘法 toc = time.time() print(c) print("ver use time"+str(1000 * (toc - tic))+"ms") #向量化用時 c=0 tic=time.time() for i in range (1000000): c+=a[i]*b[i] toc=time.time() print(c) print("loop use time"+str(1000*(toc-tic))+"ms") #for迴圈用時
結果可以看出向量化比for迴圈快上許多。。。。
下面說一下*和dot的區別
import numpy as np
a=np.array([[1,2],[0,1]])
b=np.array([[0,1],[2,1]])
c=a*b
print(c)
c=np.dot(a,b)
print(c)
由結果可以看出*是矩陣對應元素相乘,而dot是矩陣的乘法。