python 申请内存空间、用于创建多维数组_『Numpy』内存分析_利用共享内存创建数组...

本文探讨了Python中Numpy数组的内存管理,包括使用`id()`、`sys.getsizeof()`和`numpy.ndarray.ctypes.data`等函数来分析内存。通过`array.array`和`numpy.frombuffer`创建共享内存的动态数组,以及利用`struct`构建动态结构数组。文章还展示了如何在多维数组中动态添加元素,并分析了numpy数组指针在内存分配过程中的行为。
摘要由CSDN通过智能技术生成

引、内存探究常用函数

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值