2016-11-21 34 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有一个稍大的结构,更紧凑的价值存储不会立即克服。

相关问题