小编典典

如何获取C的numpy数组的内存地址

python

我构造了一个numpy数组::

a=np.ndarray([2,3])

那我想看看它的数据在哪里:

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通过以下方式将数据传输到ac函数:

ctypes_array = (ctypes.c_char * a.size * 8).from_address(ptr)

我应该如何获得PTR的价值?


阅读 217

收藏
2020-12-20

共1个答案

小编典典

另外,看看ndarray.__array_interface__,这是一个字典,其中包含您要获取的所有信息。

就你而言

pointer, read_only_flag = a.__array_interface__['data']
2020-12-20