首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C++中获取numpy数组的内存地址

如何在C++中获取numpy数组的内存地址
EN

Stack Overflow用户
提问于 2012-06-29 23:41:49
回答 2查看 14.4K关注 0票数 28

我构造了一个numpy数组::

代码语言:javascript
复制
a=np.ndarray([2,3]) 

然后我想看看它的数据在哪里::

代码语言:javascript
复制
a.data 
>>>Out[213]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E87A0> 
a.data 
>>>Out[214]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E82A0> 
a.data 
>>>Out[215]: <read-write buffer for 0x0482C1D0, size 48, offset 0 at 0x049E81C0> 

..。

为什么每次的偏移量地址都不一样?如果我想使用c_types by:将数据传输到c函数:

代码语言:javascript
复制
ctypes_array = (ctypes.c_char * a.size * 8).from_address(ptr) 

我应该如何获得ptr的值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-30 01:18:09

此外,还可以查看ndarray.__array_interface__,它是一个包含所有您要查找的信息的字典。

在你的情况下,

代码语言:javascript
复制
pointer, read_only_flag = a.__array_interface__['data']
票数 35
EN

Stack Overflow用户

发布于 2012-06-30 00:17:50

a.data可能是一个属性,它的getter函数在每次调用时创建一个新的缓冲区对象(元数据)。

要获取地址,请参阅numpy.ctypeslib.as_ctypes()是如何实现的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11264838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档