Pourquoi la transposition d'un tableau NumPy 1D ne change-t-elle pas sa forme ?

Susan Sarandon
Libérer: 2024-11-11 12:14:03
original
932 Les gens l'ont consulté

Why Does Transposing a 1D NumPy Array Not Change Its Shape?

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)
Copier après la connexion

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal