在这个问题Why NumPy instead of Python lists? [closed]中,每个人似乎都认同numpy数组是一个更紧凑的结构。 我尝试复制这个,我发现只有当列表变得庞大时才会这样。我在python3.5 ubuntu 12.04
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
有人可以解释我为什么吗?
答案 0 :(得分:2)
修正了开销。列表和numpy数组都有固定大小的数据结构,用于管理容器中的数据。 Numpy有一个稍大的结构,更紧凑的值存储不会立即克服。