Question

I'm trying to print the complete contents of two 1001x1 arrays, but Python only gives me truncated output something like this:

array([[5,45],
       [1,23],
       ......,
       [1,24],
       [2,31]])  

instead of the complete array.

Can anyone give me solution of how to get the complete 1001x1 array?

Was it helpful?

Solution

I'm going to guess that you tried a simple statement like:

print myarray

... rather than something more explicit like:

for each_item in myarray:
    print each_item

... or even:

print ', '.join([str(x) for x in myarray])

The reason you're seeing elided output is, presumably, because numpy implements a _str_ method in its array class which tries to give a "reaasonable" default string representation of the array. They are, presumably, assuming that simple print statements will be used primarily for debugging, logging, or similar purposes and that reporting of results, or marshaling of results to other processes or storage, is going to be done using more explicit iterations over the data (as I've shown here).

OTHER TIPS

See the section Printing Arrays in the NumPy tutorial:

If an array is too large to be printed, NumPy automatically skips the central part of the array and only prints the corners:

>>> print(np.arange(10000))
[   0    1    2 ..., 9997 9998 9999]

...

To disable this behaviour and force NumPy to print the entire array, you can change the printing options using set_printoptions.

>>> np.set_printoptions(threshold=nan)

The np.set_printoptions function is part of the NumPy library.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top