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
?
IIUC, utilisez reshape
my_array.reshape(my_array.size, -1)
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.