请参考以下执行 -
import sys
_list = [2,55,87]
print(f'1 - Memory used by Python List - {sys.getsizeof(_list)}')
narray = np.array([2,55,87])
size = narray.size * narray.itemsize
print(f'2 - Memory usage of np array using itemsize - {size}')
print(f'3 - Memory usage of np array using getsizeof - {sys.getsizeof(narray)}')
这是我得到的结果
1 - Memory used by Python List - 80
2 - Memory usage of np array using itemsize - 12
3 - Memory usage of np array using getsizeof - 116
一种计算方式表明numpy数组消耗的内存远远少于常规Python列表,但另一种计算方式表明其消耗的内存比Python列表更多?我是否应该使用getSizeOf来检查numpy数组。我在这里做错了什么?
编辑- 我刚刚检查了,一个空的Python列表消耗56个字节,而一个空的np数组消耗104个字节。这些空间是否用于指向关联的内置方法和属性?