Python 3.x numpy数组大于python列表

Python 3.x numpy数组大于python列表,python-3.x,numpy,Python 3.x,Numpy,在这个问题上,每个人似乎都同意numpy阵列比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(getsize

在这个问题上,每个人似乎都同意numpy阵列比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

有人能解释一下为什么吗

固定开销。列表和numpy数组都有一个固定大小的数据结构,用于管理容器中的数据。Numpy的结构稍大一些,更紧凑的值存储不会立即克服这一点。

固定开销。列表和numpy数组都有一个固定大小的数据结构,用于管理容器中的数据。Numpy的结构稍大一些,更紧凑的值存储不会立即克服这一点。

getsizeof
只测量列表指针的缓冲区,而不是指向的所有对象。这不是一个比较2的好工具。这很有帮助,感谢
getsizeof
只测量列表指针的缓冲区,而不是指向的所有对象。这不是比较2的好工具。这是非常有用的,谢谢