Maison >développement back-end >Tutoriel Python >Comment imprimer joliment des tableaux NumPy sans notation scientifique et avec une précision spécifiée ?

Comment imprimer joliment des tableaux NumPy sans notation scientifique et avec une précision spécifiée ?

DDD
DDDoriginal
2024-12-08 11:41:111083parcourir

How to Pretty-Print NumPy Arrays Without Scientific Notation and with Specified Precision?

Imprimer joliment un tableau NumPy sans notation scientifique et avec une précision donnée

Lors de l'impression de tableaux NumPy de flotteurs, cela donne souvent plusieurs décimales et utilise un format scientifique, ce qui le rend difficile à lire, en particulier pour les tableaux de faible dimension. Étant donné que les tableaux NumPy doivent être imprimés sous forme de chaînes, cela soulève la question de trouver une solution à ce problème.

L'utilisation de numpy.set_printoptions vous permet de définir la précision souhaitée pour votre sortie. En définissant cette option, vous pouvez contrôler le nombre de décimales affichées.

Pour améliorer encore la lisibilité, vous pouvez désactiver la notation scientifique à l'aide de l'option de suppression. Cela garantit que les petits nombres sont affichés en notation standard.

import numpy as np

x = np.random.random(10)
print(x)
# [ 0.07837821  0.48002108  0.41274116  0.82993414  0.77610352  0.1023732
#   0.51303098  0.4617183   0.33487207  0.71162095]

np.set_printoptions(precision=3)
print(x)
# [ 0.078  0.48   0.413  0.83   0.776  0.102  0.513  0.462  0.335  0.712]
y = np.array([1.5e-10, 1.5, 1500])
print(y)
# [  1.500e-10   1.500e+00   1.500e+03]

np.set_printoptions(suppress=True)
print(y)
# [    0.      1.5  1500. ]

Si vous utilisez NumPy version 1.15.0 ou ultérieure, vous pouvez tirer parti du gestionnaire de contexte numpy.printoptions pour une application localisée de l'impression. choix. Dans le contexte, les paramètres d'impression souhaités sont appliqués, mais reviennent aux paramètres par défaut à l'extérieur.

x = np.random.random(10)
with np.printoptions(precision=3, suppress=True):
    print(x)
    # [ 0.073  0.461  0.689  0.754  0.624  0.901  0.049  0.582  0.557  0.348]

Pour éviter que les zéros ne soient supprimés à la fin des flottants, vous pouvez utiliser le paramètre formateur dans np.set_printoptions. Ce paramètre permet de spécifier une fonction de format pour chaque type de données.

np.set_printoptions(formatter={'float': '{: 0.3f}'.format})
print(x)
# Output: [ 0.078  0.480  0.413  0.830  0.776  0.102  0.513  0.462  0.335  0.712]

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