Maison > développement back-end > Tutoriel Python > Pourquoi la transposition d'un tableau NumPy 1D ne change-t-elle pas sa forme ?

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

Mary-Kate Olsen
Libérer: 2024-11-10 13:16:02
original
932 Les gens l'ont consulté

Why Doesn't Transposing a 1D NumPy Array Change Its Shape?

Transposer un tableau NumPy 1D : une solution étonnamment simple

De nombreux programmeurs rencontrent de la confusion lorsqu'ils tentent de transposer un tableau NumPy 1D. Examinons le problème et découvrons la solution étonnamment simple.

Dans NumPy, l'opération de transposition désignée par .T permute les dimensions d'un tableau. Cependant, si le tableau est 1D, sa forme reste la même après transposition. Cela peut être déroutant pour ceux qui attendent un tableau 2D.

Pour illustrer, considérons le code suivant :

import numpy as np
a = np.array([5, 4])
print(a)
print(a.T)
Copier après la connexion

Le résultat sera :

[5 4]
[5 4]
Copier après la connexion

Comme vous pouvez le constater, la transposition du tableau 1D a ne produit pas de changement de forme. En effet, la transposition d'un tableau 1D est toujours un tableau 1D.

La solution réside dans la conversion du tableau 1D en tableau 2D avant de le transposer. Ceci peut être réalisé en utilisant la fonction np.newaxis, qui insère essentiellement un nouvel axe dans le tableau :

a = np.array([5, 4])[np.newaxis]
print(a)
print(a.T)
Copier après la connexion

La sortie devient maintenant :

[[5 4]]
[[5]
 [4]]
Copier après la connexion

Le tableau 1D a a été converti avec succès en tableau 2D et sa transposition produit le résultat souhaité.

Il est important de noter que dans la plupart des cas, il n'est pas nécessaire de le faire manuellement convertir un tableau 1D en tableau 2D pour la transposition. NumPy diffuse automatiquement des tableaux 1D lors de l'exécution de diverses opérations, éliminant ainsi le besoin de se soucier des dimensions.

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!

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