Je travaille sur un programme qui va créer des données de contour à partir d'arrays numpy, et j'essaie d'éviter les appels à matplotlib.
J'ai un array de longueur L qui contient des arrays NxN de booléens. Je veux convertir ceci en un array LxNxN où, par exemple, les "True" dans le premier array interne sont remplacés par "rouge", dans le deuxième, par "bleu" et ainsi de suite.
Le code suivant fonctionne comme prévu:
import numpy as np
import pdb
def new_layer(N,p):
return np.random.choice(a=[False,True],size=(N,N),p=[p,1-p])
a = np.array([new_layer(3,0.5),new_layer(3,0.5),new_layer(3,0.5)]).astype('object')
colors = np.array(["red","green","blue"])
for i in range(np.shape(a)[0]):
b = a[i]
b[np.where(b==True)] = colors[i]
a[i] = b
print(a)
Mais je me demande s'il y a un moyen d'accomplir la même chose en utilisant les outils intégrés de Numpy, par exemple, l'indexation. Je suis nouveau sur Numpy et je soupçonne qu'il y a une meilleure façon de le faire mais je ne vois pas ce que ce serait. Merci.