web-dev-qa-db-fra.com

Transposer un tableau unidimensionnel dans Numpy sans transtyper en matrice

Mon objectif est de transformer un vecteur ligne en vecteur colonne et vice versa. La documentation pour numpy.ndarray.transpose dit:

Pour un tableau 1D, cela n'a aucun effet. (Pour basculer entre les vecteurs de colonne et de ligne, commencez par convertir le tableau 1-D en un objet matriciel.)

Cependant, quand j'essaye ceci:

my_array = np.array([1,2,3])
my_array_T = np.transpose(np.matrix(myArray))

J'obtiens le résultat souhaité, bien que sous forme de matrice (matrix([[66],[640],[44]])), mais j'obtiens également cet avertissement:

PendingDeprecationWarning : la sous-classe de matrice n'est pas le moyen recommandé pour représenter les matrices ou traiter l'algèbre linéaire (voir https: //docs.scipy. org/doc/numpy/user/numpy-for-matlab-users.html ). Veuillez ajuster votre code pour utiliser ndarray normal.

my_array_T = np.transpose(np.matrix(my_array))

Comment puis-je alors transposer correctement un ndarray?

7
Ian

IIUC, utilisez reshape

my_array.reshape(my_array.size, -1)
1
rafaelc

Si votre tableau est my_array et vous voulez le convertir en vecteur de colonne, vous pouvez faire:

my_array.reshape(-1, 1)

Pour un vecteur ligne, vous pouvez utiliser

my_array.reshape(1, -1)

Ces deux éléments peuvent également être transposés et cela fonctionnerait comme prévu.

1
SilverSlash