1. np.array与list 比较
a=[1,2,3,4]需要4个指针和四个数据,增加了存储和消耗cpu
a=np.array([1,2,3,4])只需要存放四个数据,读取和计算更加方便。
2. np.array与list所占内存
def test():
nums = []
for _ in range(900000):
nums.append(np.random.randn())
nums1 = np.array(nums)
print(round(sys.getsizeof(nums) / 1024 / 1024, 2)) # 7.37M
print(round(sys.getsizeof(nums1) / 1024 / 1024, 2)) # 6.87M--准确大小
注:python中float占64bit,对应8byte,所以900000个float的内存大小为:(900000*8)/(1024*1024) ≈ 6.87M
3. 参考
https://stackoverflow.com/questions/11784329/python-memory-usage-of-numpy-arrays