Je veux libérer le GIL l'intérieur d'une boucle sur un tableau numpy 3 dimensionsCython avec numpy comment se débarrasser de l'indexation de fantaisie (pas d'appel à Python)
cdef np.ndarray[DTYPE_t,ndim=3] array=np.ones((10000000,4,2))
cdef np.ndarray[DTYPE_t,ndim=2] sliced_array
cdef int i
cdef int N=array.shape[0]
for i in range(N):
sliced_array=array[i]
#perform computations on slice
Quand je regarde le code html produit par Cython on dirait qu'il appelle Python quand il le fait sliced_array=array[i]
Je suppose que c'est parce qu'il déduit la taille des deux autres dimensions mais même en utilisant des plages typées pour les deuxième et troisième axes, cette ligne est toujours jaune!
sliced_array=array[i,typed_slice_x,typed_slice_y]
Je n'ai pas travaillé avec Cython, mais 'slice' est un builtin Python, cela peut causer le problème. –
Que voulez-vous dire? – jean
Essayez de renommer la variable. –