2016-11-21 87 views
0

在這個問題中Why NumPy instead of Python lists? [closed]似乎每個人都認爲比numpy數組更爲緊湊的結構。 我試圖複製這個,我發現,只有當列表變得巨大時纔是真實的。我在python3.5上Ubuntu 12.04numpy數組比Python列表大

import sys 
from numpy getsizeof 

a = [1.0,2.0,3.0,4.0] 
print(getsizeof(a)) # 96 
print(getsizeof(numpy.array(a))) # 128 

a = list(range(1000)) 
print(getsizeof(a)) # 9112 
print(getsizeof(numpy.array(a))) # 8096 

有人能解釋我爲什麼嗎?

+1

'getsizeof'只測量列表指針的緩衝區,而不是指向的所有對象。這不是一個很好的工具來比較2. – hpaulj

+0

http://stackoverflow.com/a/33052942/901925 – hpaulj

+0

http://stackoverflow.com/a/40357378/901925 – hpaulj

回答

2

固定開銷。列表和numpy數組都有一個固定大小的數據結構,用於管理容器中的數據。 Numpy有一個稍大的結構,更緊湊的價值存儲不會立即克服。