ctypes指针进入numpy数组的中间

时间:2011-06-25 20:25:44

标签: python pointers numpy ctypes

我知道如何获得一个指向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 个答案:

答案 0 :(得分: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)