Actuellement, j'ai un code qui vérifie si l'élément donné dans array est égal à 0 et si c'est le cas, alors donne la valeur 'level' (temp_board est un tableau numpy array, indices_to_watch contient des coordonnées 2D à surveiller pour les zéros).Modification de tableau masqué de Numpy
indices_to_watch = [(0,1), (1,2)]
for index in indices_to_watch:
if temp_board[index] == 0:
temp_board[index] = level
Je voudrais convertir en une approche plus semblable à numpy (retirer la et utiliser les fonctions que numpy) pour accélérer cela. Voici ce que j'ai essayé:
masked = np.ma.array(temp_board, mask=(a!=0), hard_mask=True)
masked.put(indices_to_watch, level)
Mais malheureusement tableau masqué quand faisant, mis() veut avoir des dimensions 1D (totalement étrange!), Est-il une autre façon de mettre à jour les éléments du tableau qui sont égaux à 0 et ont du béton indices? Ou peut-être que l'utilisation de tableaux masqués n'est pas la bonne solution?
Merci :) J'ai essayé numpy.where() mais je n'ai pas pensé à le combiner avec set intersection –