J'ai cherché en ligne et je n'ai rien trouvé à ce sujet qui fasse ce que je veux.
Je voudrais enregistrer un tableau numpy en tant qu'image, mais au lieu d'avoir une image colorée, je veux une représentation en noir et blanc des valeurs des pixels dans leur emplacement de grille correspondant.
Par exemple:
import numpy as np
x = np.array([[1,2],[3,4]])
print(x)
# [[1 2]
# [3 4]]
Je voudrais l'enregistrer en tant qu'image (.PNG) qui ressemble à ceci:
Mon code actuel crée une grille et place les chiffres à l'intérieur mais il est très difficile de tout ajuster pour le rendre présentable dans un document de recherche.
Donc, plutôt que de publier mon code trop complexe, je me demandais s'il y avait une fonction intégrée pour gérer cela en quelques lignes de code.
table
serait un bon point de départ. Je ne l'ai pas suffisamment utilisé pour donner une bonne réponse.table
.Réponses:
J'utiliserais LaTeX pour générer les tableaux, car ils ont l'air fantaisistes et vous pouvez soit générer une image ou les mettre directement dans votre document. J'ai utilisé le code suivant pour y parvenir:
Ici, la classe de document
preview
est utilisée qui renvoie une image redimensionnée au contenu du document, c'est-à-dire juste la table. Seul untabular
environnement est utilisé pour présenter les données. Il y a des barres horizontales et verticales entre les cellules, mais il est très facile de changer cela. Dans la variable,tab
les données sont traitées pour chaque ligne et converties en chaîne. Notez que vous devez spécifier le format de sortie à cette position. Je l'ai défini pour%d
que tout soit converti en entiers.Si vous souhaitez utiliser le tableau directement dans une source latex, vous devez supprimer
documentclass
et\begin{document}
ainsi que\end{document}
dans les variables destart
etend
. Enfin, tout est rassemblé dans une source latex qui est ensuite stockée sur le disque soustable.tex
. Si vous voulez juste l'image à la fin, le fichier résultant est compilétable.pdf
.Voici à quoi ressemble la sortie. Mais comme je l'ai dit, il est très facile de changer l'apparence puisque c'est LaTeX :)
Voici un autre exemple avec une grande matrice (14 x 14), remplie de nombres aléatoires allant de 0 à 100:
la source
Vous pouvez utiliser la
table
fonction dematplot
pour tracer le tableau simple. De plus, vous pouvez enregistrer le tracé au format PNG. Voici le code simple pour vos besoins:La taille du tracé ou de l'image peut être ajustée en modifiant les
figsize
paramètres de la ligne:plt.figure(figsize=(x,y))
Pour une meilleure apparence, il peut être modifié comme ci-dessous:
la source
fig = plt.figure(figsize = x.shape)
Peut-être que cela aidera:
la source