Construction d'image à partir de vecteur colonne
Bonjour à tous!
Voilas, je suis tout nouveau sur ce forum et j'ai décidé d'apprendre le python, (je dois vous dire que c'est pas facile tous les jours...:lol:) Bon je vous explique le problème que j'ai en ce moment. J'ai un fichier texte avec 3 colonnes : x , y et une valeur d'intensité z.
Chaque colonnes est de taille m x n et peut donc être représentée comme une matrice rectangle de taille mxn. J'aimerai pouvoir reconstruire ce genre de matrice afin d'afficher d'une manière "jolie", comme pour une image, mes valeurs d'intensité z grâce à la fonction pylab.imshow, plutôt qu'avec scatter (qui ne produit pas un résultat uniforme mais seulement de gros rond).
Comme je ne connais pas à priori les tailles m et n, j'ai eu l'idée de construire deux matrices X et Y avec meshgrid et pour chaques couples (x,y) que je lis dans mes matrices X et Y, je puisse associer ma valeurs d'intensité z lus dans mon vecteur colonne pour le couple (x,y) correspondant. Est-ce que vous me suivez?
Le code que j'ai essayé de mettre en place ressemble à cela:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
import numpy as np
import pylab as pl
x=np.array(x) #mes vecteur colonnes sont definis dans les trois lignes qui suivent
y = np.array(y)
z = np.array(z)
X,Y=np.meshgrid(x,y)#ici je construit mes grandes matrice
Z=np
for i in range(len(X)):
for j in range(len(Y)):
if X[i,j]==x[i]
if Y[i,j]==y[j]
Z[i,j] = z[j]#ici j'attribus donc mes valeurs d'intensité à l'index i,j dans ma matrice Z qui sera mon image |
Mais bon je dois vous avouer que ce n'est pas très optimal pour python (boucle for) et que c'est très long...
Du coup est-ce que vous auriez des indications pour m'aiguiller dans la rédaction de manière matricielle ? Je me doute que je dois pouvoir m'affranchir de ces boucles? Ou peut être d'autre fonctions à utiliser plus simple existent?
Merci d'avance à tous pour vos réponses!
Bonne journée !