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
Mary-Kate Olsenoriginal
2024-11-10 13:16:02928parcourir

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)

Le résultat sera :

[5 4]
[5 4]

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)

La sortie devient maintenant :

[[5 4]]
[[5]
 [4]]

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:
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