Extraire élement index, matrice
giny28
Messages postés
8
Date d'inscription
Statut
Membre
Dernière intervention
-
giny28 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
giny28 Messages postés 8 Date d'inscription Statut Membre Dernière intervention -
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 !
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]].
>>> def matrix(line,col) :
m = []
for e in range(n) :
z = []
for o in range(m) :
z += [3*e + o + 1]
m += [z]
return m
_ 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 :
>>> m=[]
>>> m.append(range(3))
>>> m.append(range(3, 6)
>>> m.append(range(6, 9))
>>>m
[[0, 1, 2], [3, 4, 5], [6, 7, 8]] # là , cela commence à 0 , mais dans mon cas çà doit commencer par 1 .
Merci d'avance !
A voir également:
- Extraire une sous matrice python
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Citizen code python avis - Accueil - Outils
- Extraire texte d'une image - Guide
- Extraire image pdf - Guide
5 réponses
Bonjour!
Pour ce qui est de créer des matrices, tu peux utiliser numpy;
Sinon, tu peux utiliser les listes de cette manière:
ce qui équivaut à:
bon, c'est juste un petit raccourcis...
pour ce qui est de l'extraction d'élément, je n'ai pas compris ce que tu voullais dire par 'Mais la fonction col2() sera t-elle binaire ?'
sinon, ta fonction ressemblerait à ceci:
soit en simplifié:
Voilà!
Au passage, juste pour info, les listes sous cette forme:
[expression for element in liste]
s'appellent des listes en compréhension et admettent aussi des condition:
[x for x in range(100) if x%3]
par exemple.
Ps: j'ai pas testé les codes... lol!
Pour ce qui est de créer des matrices, tu peux utiliser numpy;
Sinon, tu peux utiliser les listes de cette manière:
matrice=lambda a,b:[range(b*x+1,b*x+b+1)for x in range(a)]
ce qui équivaut à:
def matrice(a, b): # avec a=lignes et b=colonnes matrice = [] for x in range a: matrice += range(b * x + 1, b * x + b + 1) # j'ai ajouté +1 car tu voulais que ta matrice commence par 1 et non # par 0, mais tu pourrais utiliser une variable si tu veux. return matrice
bon, c'est juste un petit raccourcis...
pour ce qui est de l'extraction d'élément, je n'ai pas compris ce que tu voullais dire par 'Mais la fonction col2() sera t-elle binaire ?'
sinon, ta fonction ressemblerait à ceci:
def col2(matrice, colonne): numbers=[] for i in matrice: numbers += i[colonne] return numbers
soit en simplifié:
col2=lambda matrice, colonne:[i[colonne] for i in matrice]
Voilà!
Au passage, juste pour info, les listes sous cette forme:
[expression for element in liste]
s'appellent des listes en compréhension et admettent aussi des condition:
[x for x in range(100) if x%3]
par exemple.
Ps: j'ai pas testé les codes... lol!