Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Bibliothèques tierces
Bibliothèques tierces Forum d'entraide pour les autres bibliothèques non présentes dans la distribution standard de Python
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/07/2012, 11h13   #1
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Par défaut Transformer une matrice colonne en matrice ligne

Bonjour, je cherche à transformer une matrice en colonne en matrice ligne mais je ne trouve pas la fonction adéquate


Merci par avance

Bonne journée
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 11h24   #2
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Salut,

Citation:
Envoyé par Leanaa Voir le message
je cherche à transformer une matrice en colonne en matrice ligne mais je ne trouve pas la fonction adéquate
Sous quelle forme est représentée ce que vous appelez "matrice"? Une liste de listes, un array numpy, autre?

- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 11h31   #3
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
il s'agit un numpy.ndarray
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 12h00   #4
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
quid de numpy.ndarray.transpose()
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 12h22   #5
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Ca marche, merci

Mais maintenant je dois mettre ma matrice en liste car sinon je ne peut pas faire de recherche à l’intérieur, donc en faite j'aurais pu la laisser en colonne (au moins maintenant je sait comment faire)

Je fait ça :

Code :
1
2
3
for i in range (0,Mat.shape[1]):
    if Y[i]==83:
       frangeX = frangeX + 1
et ça me met cette erreur :

if Y[i]==83:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 12h54   #6
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Salut,
Citation:
Envoyé par Leanaa Voir le message
Mais maintenant je dois mettre ma matrice en liste car sinon je ne peut pas faire de recherche à l’intérieur
Parcourir les éléments de la matrice se fait avec .nditer, genre:
Code :
1
2
for x in np.nditer(array, options):
       ...
Par contre, je ne vois pas ce que vous essayez de faire avec le code que vous montrez:
Code :
1
2
3
for i in range (0,Mat.shape[1]):
    if Y[i]==83:
       frangeX = frangeX + 1
D'où sort Y? ou est la matrice?
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 13h28   #7
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Ma matrice est Y et je souhaite ajouter 1 à ma fonction frangeX lorsque Y = 83 (qui est la moyenne trouver dans une autre fonction) sur tout la largeur de la matrice Y
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 13h56   #8
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Salut,

Citation:
Envoyé par Leanaa Voir le message
Ma matrice est Y et je souhaite ajouter 1 à ma fonction frangeX lorsque Y = 83 (qui est la moyenne trouver dans une autre fonction) sur tout la largeur de la matrice Y
En écrivant "frangeX = frangeX + 1", vous considérez frangeX est un "number" et non une fonction.
Cela n'aide pas à comprendre ce que pourrait bien vouloir dire "ajouter 1 à la fonction frangeX" et encore moins comment réaliser la chose correspondante.

Si Y est la matrice, Y[i] sera la ligne i => une liste de... et non un "nombre".
Si vous avez calculé et stocké quelque part la moyenne de chaque ligne de Y, nous pourrions espérer une "colonne" / "liste" stockée dans une variable "meanY" telle que "meanY[i]" soit la moyenne de la colonne "i" de "Y".

Ajouter 1 à je ne sais quoi lorsque la moyenne de la ligne est 83 n'a pas besoin d'itérer sur tous les éléments de Y, mais sur ceux de meanY qui est "sequence" simple i.e.:
Code :
1
2
3
for v in meanY:
     if v == 83:
        # ajouter 1 à je ne sais pas encore quoi
De même meanY devrait pouvoir se calculer "simplement" via:
Code :
1
2
length = len(Y[0])
meanY = [ sum(z) / length for z in Y ]
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 14h07   #9
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Je dois compter des franges d'une bulle

J'ai réussit à les détecter et j'obtiens une courbe sinusoïdale dont les valeurs sont dans la matrice Y, j'en est fait la moyenne appelé mean (environs 83.215) que j'ai convertie en nombres entier pour avoir 83, j'ai fait une matrice de cette moyenne rempli avec le nombre 83 de la taille de Y pour pouvoir tracer la droite moyenne sur la courbe.

J'ai vérifier qu'il y avait bien des valeur Y = 83 dans la matrice

Il faudrait maintenant que lorsque mean = Y s'ajoute +1 à frangeX (initialement j'ai imposer frangeX = 0), ainsi je pourrais lancer un calcul pour déterminer le diamètre de mes bulles.

En espèrent avoir été plus clair...
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 14h24   #10
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Citation:
Envoyé par Leanaa Voir le message
En espèrent avoir été plus clair...
Si cela vous semble "clair", montrez nous comment vous le codez...
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2012, 14h33   #11
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
"#### Ouverture de l'image ####"
 
# Ouverture de l'image
frange = Image.open('test3.jpg')
 
# Convertion de l'image en matrice
Mat = np.asarray(frange)
 
 
"#### Tracer de la courbes représentant l'intensiter des franges ####"
 
#Création d'une liste vide
Y = []
 
#Définition de l'ordonnée : calcule de l'intervalle : on commence par la valeur de départ de la séquence, 
#    La valeur de fin de la séquence -1 de sorte que l'arrêt soit exclu, nombre 
#    déchantillon à générer
#Ici on commence à 0 puis sur la largeur de l'objet -1pixel de sorte que l'arrêt  
#    soit exclu pour avoir autant d'échantillon que la taille de la largeur.
 
X = np.linspace(0,Mat.shape[1]-1,Mat.shape[1])
 
 
#Recherche du centre : taille de la hauteur de l'image / 2
centre = Mat.shape[0]/2
 
 
# Boucle commencant au pixel 0 finissant au bout de la largeur de l'objet
 
for i in range (0,Mat.shape[1],1):
    #Ajout des valeur trouver sur le centre dans la liste Y qui correspondra 
    #     à l'intensiter des franges   
   Y.append(Mat[centre][i])
 
 
# Convertion de la liste Y en matrice
Y = np.array(Y)
 
#Calcul de la moyenne de Y
moy = np.average(Y)
 
 
"#### Tracer de la moyenne ####"
 
# Création d'une liste vide
Mean = []
 
# le liste de Mean est mis à la même taille que X
shapeMean=np.shape(X)
U = np.zeros(shapeMean)
 
# Boucle commencant au pixel 0 finissant au bout de la largeur de l'objet
for i in range (0,Mat.shape[1],1):
    #Ajout de la moyenne à Mean
    Mean.append(moy)
 
# Conversion de Mean en nombre décimal en nombre entier
c=np.round(Mean)
# Conversion de la liste Mean en matrice
Mean = np.array(c)
 
 
"#### Comptage des franges ####"
 
# initialement frangeX = 0 car on n'a pas encore de frange 
frangeX = 0
 
# Boucle commençant au pixel 0 finissant au bout de la largeur de l'objet
for i in range (0,Mat.shape[1]):
    if Y[i]==83:
       frangeX = frangeX + 1
 
 
# frangeX /2 car le programme compte le front montant et déscendant de la même sinusoïde
frangeX = frangeX/2
 
 
"#### Affichage de l'image et des courbes ####"
 
fig1 = plt.figure(1)
ax1 = fig1.add_subplot(1,2,1)
ax1.imshow(frange, cmap=plt.cm.gray)
ax2 = fig1.add_subplot(1,2,2)
ax2.plot(X,Y,'r-')
ax2.plot(X,Mean,'g-')
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 10h31   #12
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Je ne peut pas faire plus clair..
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 11h17   #13
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Citation:
Envoyé par Leanaa Voir le message
Je ne peut pas faire plus clair..
Regardez le nombre d'objets associés à "moyenne" dans votre code: X, moy, Mean, shapeMean,...
Relisez les explications exprimées en phrases écrites en "français" sur ce que vous attendez que çà fasse.
La description en français me semble aussi embrouillée que le code Python...

last but not least: quel était la question posée: "Transformer une matrice colonne en matrice ligne".
Après que je vous ai donné la réponse, vous dites:
Citation:
Ca marche, merci

Mais maintenant je dois mettre ma matrice en liste car sinon je ne peut pas faire de recherche à l’intérieur, donc en faite j'aurais pu la laisser en colonne (au moins maintenant je sait comment faire)
Si vous avez encore une idée trop vague de ce que vous voulez faire pour l'exprimer simplement, pas la peine d'essayer de coder quoi que ce soit.

- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 11h21   #14
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Je ne suis pas programmatrice, je n'est pas le choix, je dois faire ce programme pour mon stage.

J'ai une idée, je l'applique, je fait avec le peut de fonction informatique que je connait, je demande de l'aide, après je ne peut rien y faire si l'idée que j'ai n'est pas toujours la bonne ou la plus simple.

Donc désoler de vous déranger avec mes questions, si vous penser que une petite étudiante ne vaut pas la peine d'être aider il ne faut pas gérer un forum qui propose de l'aide.
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 11h47   #15
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
Citation:
Donc désoler de vous déranger avec mes questions, si vous penser que une petite étudiante ne vaut pas la peine d'être aider il ne faut pas gérer un forum qui propose de l'aide.
Le problème est qu'il n'y a pas de question juste un appel à l'aide.
Ne pensez vous pas qu'il devrait plutôt être adressé à votre responsable de stage?

Bon courage.
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 11h48   #16
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Ils ne font pas de programmation, c'est un sujet de secours car ma manip ne fonctionne pas.
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 12h30   #17
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
la réponse est 42?
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/07/2012, 13h17   #18
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
??
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2012, 13h46   #19
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 710
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 710
Points : 4 547
Points : 4 547
C'est la réponse à la question qui n'a pas été posée.
d'après le "Le Guide du voyageur galactique".
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 05/07/2012, 17h11   #20
Leanaa
Invité de passage
 
Femme
Étudiant
Inscription : juin 2012
Messages : 21
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2012
Messages : 21
Points : 0
Points : 0
Merci pour votre sympathie, je saurais vous faire la pub qui va avec
Leanaa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h06.


 
 
 
 
Partenaires

Hébergement Web