【问题标题】:ctypes pointer into the middle of a numpy arrayctypes 指针指向一个 numpy 数组的中间
【发布时间】:2011-06-25 20:25:43
【问题描述】:
我知道如何获取指向 numpy 数组开头的 ctypes 指针:
a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
但是,我需要将指针传递到元素 100,而不复制数组。
一定有一个简单的方法可以做到,但找不到。
任何提示表示赞赏。
【问题讨论】:
标签:
python
pointers
numpy
ctypes
【解决方案1】:
切片一个 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)