2015-05-02 64 views
1

當您需要處理大量數據時,最好在整數和數組之間使用? 我寫了一個小腳本:數組與整數

import time 

integer1 = 1 
integer2 = 2 
array = [1, 2] 
loop = 10000000 #ten million 

i = 0 
a = time.time() 
while i < loop: 
    integer1 + integer2 
    i += 1 
print("With integers :", time.time()-a, "seconds.") 

i = 0 
b = time.time() 
while i < loop: 
    array[0] + array[1] 
    i += 1 
print("With array :", time.time()-b, "seconds.") 

而且我得到了:

用整數:2.107954978942871秒。

With array:2.6036949157714844 seconds。

因此,似乎使用大量的整數更快,但在該示例中,只創建了2個整數。當我們有1000萬個整數時如何處理這個問題?

+0

把Q遺留給其他人,但是標準庫[timeit模塊](https://docs.python.org/3/library/timeit.html)對於這些測試來說非常棒。 – grayshirt

回答

3

Python效率不高,因爲它是一種動態類型語言。在諸如C這樣的靜態類型語言中,編譯器確切地知道變量是整數類型的。但在python的情況下,變量存儲在python對象中。這非常方便,但在記憶和速度方面效率不高。我強烈建議你閱讀文章Why Python is Slow: Looking Under the Hood

如果您正在處理大量數據,您最好的選擇是使用C構建的NumPySciPy,並且可用作Python包。

+0

謝謝你的回答bman;)我現在明白了。 – Maxline