I know how to get a ctypes pointer to the beginning of a numpy array:
a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
however, I need to pass the pointer to, let's say, element 100, without copying the array . There must be an easy way to do it but cannot find it.
Any hint appreciated.
Slicing a numpy array creates a view, not a copy:
>>> 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)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.