2011-06-25 15 views
7

wiem jak uzyskać wskaźnik ctypes do początku numpy tablicy:ctypes wyżeł w środku numpy tablicy

a = np.arange(10000, dtype=np.double) 
p = a.ctypes.data_as(POINTER(c_double)) 
p.contents 
c_double(0.0) 

jednak trzeba przekazać wskaźnik do, powiedzmy, element 100 , bez kopiowania tablicy. Musi być łatwy sposób na zrobienie tego, ale nie może go znaleźć.

Jakaś wskazówka doceniona.

Odpowiedz

11

Krojenie na tablicy numpy tworzy widok, a nie kopia:

>>> 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)