我知道如何获得一个指向numpy数组开头的ctypes指针:
a = np.arange(10000, dtype=np.double)
p = a.ctypes.data_as(POINTER(c_double))
p.contents
c_double(0.0)
但是,我需要将指针传递给元素100,而不复制数组。 必须有一个简单的方法,但找不到它。
任何提示都表示赞赏。
答案 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)