引、内存探究常用函数
id(),查询对象标识,通常返回的是对象的地址
sys.getsizeof(),返回的是 这个对象所占用的空间大小,对于数组来说,除了数组中每个值占用空间外,数组对象还会存储数组长度、数组类型等其他信息
numpy.ndarray.ctypes.data属性,返回numpy数组的内存位置
array.array.buffer_info(),数组对象的内存信息,返回元素起始地址和元素个数
help(array.buffer_info)
'''
buffer_info(self, /)
Return a tuple (address, length) giving the current memory address and the length in items of the buffer
used to hold array's contents.
'''
numpy.ndarray.nbytes,获取数组中存储的值的占用空间大小
numpy.ndarray.items,获取数组中每个值的占用空间大小
部分函数试用如下,有意思的是对numpy数组中元素的迭代,它们的id是两个循环出现的地址,原因不明,
a = np.array([1,2,3,4,5])
a.ctypes.data
# 2199487215904
id(a)
# 2199565580288
sys.getsizeof(a)
# 116
a.nbytes