web-dev-qa-db-fra.com

Impression du contenu COMPLET du tableau numpy

Je travaille avec le traitement d'image en python et je veux générer une variable. Pour le moment, la variable b est un tableau numpy de forme (200,200). Quand je fais print b tout ce que je vois est:

array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

Comment puis-je imprimer le contenu complet de ce tableau, l'écrire dans un fichier ou quelque chose de simple afin que je puisse simplement regarder le contenu au complet?

10
user2275931

Bien sûr, vous pouvez modifier le seuil d’impression du tableau comme répondus ailleurs avec:

np.set_printoptions(threshold=np.nan)

Mais selon ce que vous essayez d'examiner, il y a probablement une meilleure façon de le faire. Par exemple, si votre tableau contient en réalité essentiellement des zéros, comme vous l'avez indiqué, et que vous souhaitez vérifier s'il contient des valeurs différentes de zéro, vous pouvez par exemple:

import numpy as np
import matplotlib.pyplot as plt

In [1]: a = np.zeros((100,100))

In [2]: a
Out[2]: 
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

Changer certaines valeurs:

In [3]: a[4:19,5:20] = 1

Et c'est toujours pareil:

In [4]: a
Out[4]: 
array([[ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       ..., 
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.],
       [ 0.,  0.,  0., ...,  0.,  0.,  0.]])

Vérifiez certaines choses qui n'exigent pas d'examiner manuellement toutes les valeurs:

In [5]: a.sum()
Out[5]: 225.0

In [6]: a.mean()
Out[6]: 0.022499999999999999

Ou l'intrigue:

In [7]: plt.imshow(a)
Out[7]: <matplotlib.image.AxesImage at 0x1043d4b50>

Ou sauvegarder dans un fichier:

In [11]: np.savetxt('file.txt', a)

array

12
askewchan
to_print = "\n".join([", ".join(row) for row in b])
print (to_print) #console

f = open("path-to-file", "w")
f.write(to_print) #to file

S'il s'agit d'un tableau numpy: Affiche le tableau numpy complet

0
J0HN