Je veux incrémenter une matrice 3D (nparray) de compteurs d'un tableau 2D d'événements (x, y, t) le code ci-dessous fonctionne:Incrément Tableau 3D de compteurs de la liste 2D d'indices (x, y, z) utilisant: Python Numpy Slicing
TOF_cube=np.zeros((324,324,4095),np.int32) #initialise a 3d array for whole data set
data = np.fromfile(f, dtype='<i2', count=no_I16) #read all events, x,y,t as 1D array
data=data.reshape(events,cols)
xpos=data[:,0]
ypos=data[:,1]
tpos=data[:,2]
i=0
while i < events:
TOF_cube[xpos[i],ypos[i],tpos[i]] += 1
i+=1
Pour utiliser le découpage et l'indexation je remplace ma boucle while avec
TOF_cube[xpos,ypos,tpos] += 1
Mais plutôt que de copier le numéro 4365520 correct des événements (via la boucle while et vérifié indépendamment) J'enregistre seulement 4365197.
Pourquoi la méthode de découpage perd-elle des événements? J'utilise exactement les mêmes tranches dans la boucle while et comme «argument» pour l'index.
Qu'est-ce 'TOF_cube.max()' pour chaque méthode? –