Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Calcul scientifique
Calcul scientifique Forum d'entraide sur la programmation scientifique et bibliothèques associées (PIL, NumPy, SciPy, ...)
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 20/11/2012, 16h24   #1
toniobuteau
Invité de passage
 
Homme
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 2
Points : 2
Par défaut [Numpy] Construction de matrice

Bonjour, j'essaie de faire une matrice comme ceci:




Pour construire ma matrice avec seulement des 1
Code :
1
2
3
4
5
x = [2,3,4,5]
 n = len(x)
m = 4
import numpy
X = numpy.ones((n,m+1))

Pour rentrer mes valeurs dans matrice avec une boucle imbriquée

Code :
1
2
3
4
 
for i in range(0,n):
	for j in range(0,m):
		X[i,j] = x[i]**m
Mais ça ne fonctionne pas.
Comment pourrais-je aborder le problème ou comment pourrais-je faire.

Merci
toniobuteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 16h37   #2
fred1599
Membre Expert
 
Avatar de fred1599
 
Homme Fred
Enseignant
Inscription : juillet 2006
Messages : 1 318
Détails du profil
Informations personnelles :
Nom : Homme Fred
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Enseignant
Secteur : Enseignement

Informations forums :
Inscription : juillet 2006
Messages : 1 318
Points : 1 815
Points : 1 815
http://docs.scipy.org/doc/numpy/refe...py.matrix.html

et

http://docs.scipy.org/doc/numpy/refe...py.matrix.fill
__________________
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
fred1599 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 17h20   #3
toniobuteau
Invité de passage
 
Homme
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 2
Points : 2
Je comprends le principe avec

Code :
1
2
for i in range(0,n):
    X[i,1] = x[i]
Que je peux décaler avec la valeur à côté de i (1,2,3,4).
C'est de faire une boucle imbriqué pour remplacé 1 que j'ai de la difficulté.

Merci
toniobuteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 19h59   #4
dividee
Membre Expert
 
Homme
Inscription : mars 2007
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 851
Points : 1 182
Points : 1 182
Regarde ce que te donne ton code du premier post. Comprends-tu pourquoi tu obtiens ce résultat ? Il y a deux petites erreur...
dividee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 20h17   #5
toniobuteau
Invité de passage
 
Homme
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 2
Points : 2
Code :
1
2
3
4
 
for i in range(0,n):
	for j in range(0,m):
		X[i,j] = x[i]**m
À la base je sais que x[i]**m ne me retournera pas la bonne chose puisque m est égale à 4 dans tous les cas.

Ensuite, il n'est pas logique que mon range soit de (0,m) pour j puisque je veux une ligne de 1.
toniobuteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2012, 22h17   #6
dividee
Membre Expert
 
Homme
Inscription : mars 2007
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Belgique

Informations forums :
Inscription : mars 2007
Messages : 851
Points : 1 182
Points : 1 182
OK, tu as bien vu cela, maintenant c'est facile à corriger. Au lieu de m, tu dois utiliser une valeur qui varie de 0 à 4. En as-tu une sous la main ? "j" bien sûr. Sauf que j varie de 0 à 3. Il faut donc modifier la boucle pour qu'il varie de 0 à 4:
Code :
1
2
3
for i in range(0,n):
    for j in range(0,m+1):
        X[i,j] = x[i]**j
Comme x[i]**0 donne 1 quelque soit la valeur de x[i], c'est ça qui te donnera la colonne de 1.
dividee est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2012, 00h17   #7
toniobuteau
Invité de passage
 
Homme
Inscription : mai 2011
Messages : 24
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : mai 2011
Messages : 24
Points : 2
Points : 2
Merci !
toniobuteau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h15.


 
 
 
 
Partenaires

Hébergement Web