Transposition de tableaux NumPy : décodage du comportement de la matrice 1D
Lorsqu'il s'agit de tableaux NumPy, il est crucial de comprendre le comportement de l'opération de transposition, en particulier pour les tableaux 1D. La transposition d'un tableau 1D entraîne un autre tableau 1D, contrairement aux attentes courantes.
Confusion avec l'opération de transposition
Considérez le code NumPy suivant :
import numpy as np a = np.array([5,4]) print(a) print(a.T)
Dans ce scénario, invoquer a.T ne transpose pas le tableau comme on pourrait le supposer. Au lieu de cela, il renvoie le tableau inchangé.
Comportement de transposition du tableau 1D
La raison derrière ce comportement réside dans la nature fondamentale des tableaux 1D dans NumPy. Contrairement à MATLAB, NumPy ne fait pas de distinction entre les tableaux 1D et 2D. Un tableau 1D dans NumPy est essentiellement un tableau 2D de dimensions (1, n), où n représente la longueur du tableau.
Par conséquent, la transposition d'un tableau 1D réorganise simplement les éléments le long d'un axe, ce qui donne un Tableau 2D de dimensions (n, 1). Dans l'exemple donné, l'opération de transposition n'a aucun effet visible car le tableau est déjà un tableau à (1, 2) dimensions, et toute rotation d'axe resterait un tableau 1D.
Création d'un tableau 2D pour Transposition
Si le résultat souhaité est de transposer un tableau 1D en un tableau 2D, on peut utiliser np.newaxis (ou de manière équivalente, Aucun) pour créer une dimension supplémentaire.
a = np.array([5,4])[np.newaxis] print(a) print(a.T)
En ajoutant une dimension avec np.newaxis, le tableau résultant devient un tableau dimensionnel (1, 2), permettant une transposition appropriée.
Informations supplémentaires
Dans la plupart des scénarios pratiques, cependant, la transposition explicite d'un tableau 1D est inutile. NumPy diffuse automatiquement des tableaux 1D à des dimensions plus élevées pendant les calculs, ce qui rend transparent pour l'utilisateur qu'il fonctionne avec des vecteurs de lignes ou de colonnes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!