it-swarm.com.de

VOLLSTÄNDIGE Inhalte des numpy-Arrays drucken

Ich arbeite mit der Bildverarbeitung in Python und möchte eine Variable ausgeben. Derzeit ist die Variable b ein numpy-Array mit Shape (200,200). Wenn ich print b tue, sehe ich nur:

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.]])

Wie drucke ich den gesamten Inhalt dieses Arrays aus, schreibe es in eine Datei oder etwas einfaches, damit ich den Inhalt nur vollständig anzeigen kann?

10
user2275931

Natürlich können Sie den Druckschwellenwert des Arrays wie anderswo beantwortet mit ändern:

np.set_printoptions(threshold=np.nan)

Aber je nachdem, was Sie betrachten möchten, gibt es wahrscheinlich eine bessere Möglichkeit, dies zu tun. Wenn Ihr Array beispielsweise, wie Sie gezeigt haben, tatsächlich hauptsächlich aus Nullen besteht und Sie prüfen möchten, ob es Werte hat, die nicht Null sind, können Sie Folgendes betrachten:

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.]])

Ändern Sie einige Werte:

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

Und es sieht immer noch gleich aus:

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.]])

Prüfen Sie einige Dinge, die nicht alle Werte manuell überprüfen müssen:

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

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

Oder plott es:

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

Oder in eine Datei speichern:

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

Falls es sich um ein numpy-Array handelt: Das vollständige numpy-Array drucken

0
J0HN