ctypes指针进入numpy数组的中间

And*_*nca 7 python ctypes pointers numpy

我知道如何获得一个指向numpy数组开头的ctypes指针:

a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
Run Code Online (Sandbox Code Playgroud)

但是,我需要将指针传递给元素100,而不是复制数组.必须有一个简单的方法来做到这一点,但找不到它.

任何暗示赞赏.

sen*_*rle 11

切片numpy数组会创建一个视图,而不是副本:

>>> a = numpy.arange(10000, dtype=numpy.double)
>>> p = a[100:].ctypes.data_as(ctypes.POINTER(ctypes.c_double))
>>> p.contents
c_double(100.0)
>>> a[100] = 55
>>> p.contents
c_double(55.0)
Run Code Online (Sandbox Code Playgroud)