Matrice, extraire par index - Python - Programmation
Marsh Posté le 07-01-2014 à 20:57:18
Bon, je ne suis pas sûr de beaucoup t'aider mais ...
(1) numpy est une librairie dédiée au calcul, en particulier matriciel
(2) si tu dois faire tes matrices à la main et que les performances ne sont pas prioritaires, pourquoi ne pas utiliser le type dict ? Quelque chose comme d = { (0,0) : n00, (0,1) : n01, (1,0) : n10, ... }
Qu'en penses-tu ?
Marsh Posté le 07-01-2014 à 22:16:12
Je connais pas ces méthodes , numpy ,j'en ai entendu parler , mais ce n'est pas de mon niveau . En tout cas , merci pour ton aide
Marsh Posté le 08-01-2014 à 13:29:11
giny28 a écrit : Bonjour, |
Bah non, t'as que la matrice puisque l'indice est fixé à 2. colonne() aura probablement 2 arguments oui, mais pas colonne2.
giny28 a écrit : Il faut utiliser 2 boucles for… enfin je pense |
Je vois pas pourquoi, tu itères sur les lignes et t'as un index fixe, où serait la 2e itération?
giny28 a écrit : _ Aussi , je n'arrive pas à utiliser la méthode append() , append est sensé rajouter un élèment à la fin par exemple d'une liste |
Oui?
Code :
|
giny28 a écrit : je sais que je n'ai pas utiliser la méthode append() pour le code px10-1 , mais j'ai découvert une chose intéressante :
|
J'ai pas compris, c'est quoi la chose intéressante? que par défaut range() commence à 0 et soit un intervalle semi-ouvert? C'est marqué dans la doc: http://docs.python.org/2/library/functions.html#range
Marsh Posté le 08-01-2014 à 19:02:24
Prière de répondre en public aux questions d'intérêt public, pas en privé
giny28 a écrit : Bonjour, >>> def colonne(matrice, index): element=[] Voilà le code que j'obtiens , mais il ne marche pas , je sais pas pourquoi , comme au début il faut faire une fonction matrice , on doit mettre la fonction matrice en argument passé . Merci pour ton aide ^^ |
+= c'est l'opération extend, pas append (donc ça prend une liste en paramètre, et ça la concatène au sujet)
et le nommage est pas terrible, "i" généralement c'est un index (numérique, dans un tableau) pas une ligne de matrice.
Accessoirement, "il ne marche pas" ça aide pas trop comme description, il est généralement suggéré de fournir toute erreur s'affichant (s'il y en a) ainsi que les comportements attendus et observés.
Marsh Posté le 08-01-2014 à 19:09:20
Merci pour la précision Voilà le code que j'obtiens , je laisse pour l'instant 'i' mais c'est en effet une bonne remarque
>>> def colonne(matrice, index):
elements=[]
for i in matrice:
elements += [i[index]]
return elements
>>> colonne(2, 3)
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
col2(matrice, 2)
File "<pyshell#39>", line 3, in col2
for i in matrice:
TypeError: 'function' object is not iterable
Marsh Posté le 08-01-2014 à 20:04:00
giny28 a écrit : Merci pour la précision Voilà le code que j'obtiens , je laisse pour l'instant 'i' mais c'est en effet une bonne remarque elements += [i[index]] |
Prière d'utiliser append là, c'est quoi cette horreur
giny28 a écrit :
Traceback (most recent call last): |
Il y a une fonction matrice définie dans le premier post, je présume que c'est ce que tu as passé à colonne.
Accessoirement, colonne pourrait utiliser map (et, pourquoi pas, le rarement utilisé itemgetter), ou une listcomp.
Marsh Posté le 07-01-2014 à 19:47:35
Bonjour,
J'aimerais coder une fonction colonne2() qui permet d'extraire de M tous les éléments d'index 2 ,et il faut généraliser ensuite une
fonction colonne() pour n'importe quelle colonne d'une matrice de n lignes par m colonnes".
L'objectif est de d'extraire les éléments d'index 2 ou indice 2 de chaque ligne ex : 3, 6 .... .
Mais la fonction col2() sera t-elle binaire ? Les 2 arguments : la matrice et l'indice.
Il faut utiliser 2 boucles for… enfin je pense
Déjà pour coder une matrice de n lignes par m colonnes : par ex : matrice(2,3) donne [[1, 2, 3], [4, 5, 6]].
_ Aussi , je n'arrive pas à utiliser la méthode append() , append est sensé rajouter un élèment à la fin par exemple d'une liste :
je sais que je n'ai pas utiliser la méthode append() , mais j'ai découvert une chose intéressante :
Merci d'avance
Message édité par giny28 le 08-01-2014 à 17:43:58