Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/07/2017, à 16:01

paul18

pourquoi transposer ?

Bonsoir,

Je n'arrive pas à comprendre pourquoi il faut transposer vect0 qui est déjà un vecteur colonne :

Là je comprend (puisque vect0 est ici un vecteur ligne) :

vect0 = np.random.rand(5); print vect0; print("\n")
mat = numpy.zeros((5,4),dtype=float)
mat[:,0]=np.transpose(vect0)

mais là ?

vect0 = np.random.rand(5,1); print vect0; print("\n")
mat = numpy.zeros((5,4),dtype=float)
mat[:,0]=np.transpose(vect0)

Merci par avance

Paul

Dernière modification par paul18 (Le 03/07/2017, à 16:02)

Hors ligne

#2 Le 03/07/2017, à 17:27

pingouinux

Re : pourquoi transposer ?

Bonjour,
Je ne suis pas un spécialiste, mais il semble que le premier vect0 soit un tableau monodimensionnel, et ça ne change rien de le transposer.

np.shape(vect0) est égal à (5,)
np.shape(np.transpose(vect0)) est égal à (5,)

Pour le second

np.shape(vect0) est égal à (5, 1)
np.shape(np.transpose(vect0)) est égal à (1, 5)

On a aussi

np.shape(mat[:,0]) est égal à (5,)

Hors ligne

#3 Le 03/07/2017, à 18:19

paul18

Re : pourquoi transposer ?

Par habitude j'ai posé le code suivant qui conduit à une erreur :

vect0 = np.random.rand(5,1); print vect0; print("\n")
mat = np.zeros((5,4),dtype=float)
mat[:,0]=vect0; print mat

mais où tu as raison c'est que si je ne reste sur un vecteur ligne, là il faut le boulot tout seul

vect0 = np.random.rand(5); print vect0; print("\n")
mat = np.zeros((5,4),dtype=float)
mat[:,0]=vect0; print mat

hmm

Merci pour le post

Paul

Hors ligne

#4 Le 03/07/2017, à 19:16

pingouinux

Re : pourquoi transposer ?

Dans le premier cas en #3, ceci ne produit pas d'erreur :

vect0 = np.random.rand(1,5); print vect0; print("\n")

Hors ligne

#5 Le 03/07/2017, à 19:22

paul18

Re : pourquoi transposer ?

pingouinux a écrit :

Dans le premier cas en #3, ceci ne produit pas d'erreur :

vect0 = np.random.rand(1,5); print vect0; print("\n")

parce que là on reste sur un vecteur ligne !!
it doesn't matter - faut le savoir - mais ce n'est pas logique (à mon sens et comparativement à d'autres codes de calculs scientifiques)

Hors ligne