【发布时间】:2022-01-05 00:31:12
【问题描述】:
请参考下面的执行-
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 列表消耗更多?我不应该将 getSizeOf 与 numpy 数组一起使用。我在这里做错了什么?
编辑 - 我刚刚检查过,一个空的 Python 列表占用 56 个字节,而一个空的 np 数组占用 104 个字节。这个空间是否用于指向相关的内置方法和属性?
【问题讨论】:
-
getsize 对于列表几乎没用。并在您担心 getsize 向您显示什么之前测试一个大数组(1000 个项目)的大小。
标签: python numpy memory-management