ctypes指针指向numpy数组中间部分
我知道怎么获取一个指向numpy数组开头的ctypes指针:
a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
但是,我需要把指针传递给,比如说,第100个元素,而不复制数组。 一定有简单的方法可以做到这一点,但我找不到。
任何提示都很感谢。
1 个回答
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)