您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎樣進行Python內置函數與numPy運算速度對比,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Python自己帶了幾個函數,主要是sum,max,min,同時numPy中也有幾個類似的函數,今天對比了一下幾個函數的運算速度,發現了還是numpy的array計算速度最快。
思路,通過產生1萬個隨機數,對其用四種方法求和,以及求最大值,求均值的方式與求和相同,求最小值的方式與求最大值也類似,故只測了求和與最大值兩項。
import random import time import numpy as np from pandas import Series a=[] for i in range(100000000): a.append(random.random()) t1=time.time() sum1=sum(a) #直接用內置函數求 t2=time.time() sum2=np.sum(a)#用numpy直接求 t3=time.time() b=np.array(a) t4=time.time() sum3=np.sum(b)#用numpy轉換為array后求 t5=time.time() c=Series(a) t6=time.time() sum4=c.sum()#用pandas的Series對象求 t7=time.time() print t2-t1,t3-t2,t5-t4,t7-t6
最后的結果分別為# sum 1.60611581802 9.87746500969 0.223296165466 1.66015696526
可以看出,以array為對象的numpy計算方式最快,而以numpy直接計算最慢,內置函數速度排第二。
求最大值
<pre name="code" class="python">import random import time import numpy as np from pandas import Series a=[] for i in range(100000000): a.append(random.random()) t1=time.time() sum1=max(a)#直接用內置函數求 t2=time.time() sum2=np.max(a)#用numpy直接求 t3=time.time() b=np.array(a) t4=time.time() sum3=np.max(b)#用numpy轉換為array后求 t5=time.time() c=Series(a) t6=time.time() sum4=c.max()#用pandas的Series對象求 t7=time.time() print t2-t1,t3-t2,t5-t4,t7-t6
結果為:
# max 2.81509399414 9.83987283707 0.219717025757 1.62969207764
結果依然是以array為計算對象的numpy最快。
綜上,如果考慮運算速度,應該先將對象轉為array,再用numpy進行計算,可獲得最快的計算速度。
上述內容就是怎樣進行Python內置函數與numPy運算速度對比,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。