Stampa array numpy completo

Muhammad Maisam Abbas 18 luglio 2021
Stampa array numpy completo

Questo tutorial introdurrà come stampare un array NumPy completo in Python.

Stampa un array completo di NumPy con la funzione numpy.set_printoptions() in Python

Per impostazione predefinita, se la lunghezza del nostro array è enorme, Python troncherà l’output quando l’array verrà stampato. Questo fenomeno è illustrato nell’esempio di codice riportato di seguito.

import numpy as np

array = np.arange(10000)
print(array)

Produzione:

[   0    1    2 ... 9997 9998 9999]

Nel codice sopra, abbiamo prima creato un array NumPy array che contiene valori numerici da 0 a 9999 con la funzione np.arange() in Python. Abbiamo quindi stampato gli elementi dell’array con la funzione print(). Otteniamo un output troncato perché l’array è troppo grande per essere visualizzato completamente.

Questo problema può essere risolto con la funzione numpy.set_printoptions(). Imposta diversi parametri relativi agli array di stampa in Python. Possiamo usare il parametro threshold della funzione numpy.set_printoptions() su sys.maxsize per stampare l’array NumPy completo. Per utilizzare la proprietà sys.maxsize, dobbiamo importare anche la libreria sys. Il seguente esempio di codice mostra come stampare un array NumPy completo con la funzione numpy.set_printoptions() e la proprietà sys.maxsize in Python.

import sys
import numpy as np

array = np.arange(10001)
np.set_printoptions(threshold=sys.maxsize)
print(array)

Produzione:

[    0     1     2     3     4     5     6     7     8     9    10    11
    12    13    14    15    16    17    18    19    20    21    22    23
    24    25    26    27    28    29    30    31    32    33    34    35
    36    37    38    39    40    41    42    43    44    45    46    47
    48    49    50    51    52    53    54    55    56    57    58    59
    60    61    62    63    64    65    66    67    68    69    70    71
    72    73    74    75    76    77    78    79    80    81    82    83
    84    85    86    87    88    89    90    91    92    93    94    95
    96    97    98    99   100   101   102   103   104   105   106   107
   108   109   110   111   112   113   114   115   116   117   118   119
...
  9912  9913  9914  9915  9916  9917  9918  9919  9920  9921  9922  9923
  9924  9925  9926  9927  9928  9929  9930  9931  9932  9933  9934  9935
  9936  9937  9938  9939  9940  9941  9942  9943  9944  9945  9946  9947
  9948  9949  9950  9951  9952  9953  9954  9955  9956  9957  9958  9959
  9960  9961  9962  9963  9964  9965  9966  9967  9968  9969  9970  9971
  9972  9973  9974  9975  9976  9977  9978  9979  9980  9981  9982  9983
  9984  9985  9986  9987  9988  9989  9990  9991  9992  9993  9994  9995
  9996  9997  9998  9999 10000]

Nel codice sopra, abbiamo prima creato un array NumPy array che contiene elementi da 0 a 10000 con la funzione numpy.arange(). Impostiamo le opzioni di stampa per l’array al massimo con la funzione np.set_printoptions(threshold = sys.maxsize). Abbiamo quindi stampato l’intero array con la semplice funzione print() in Python.

C’è un’altra soluzione al nostro problema che prevede solo l’uso della libreria NumPy. Possiamo specificare che la threshold all’interno della funzione numpy.set_printoptions() sia uguale a np.inf per stampare l’array completo in Python. La proprietà np.inf specifica che print() funzionerà all’infinito finché non verrà stampato l’intero array. Vedere il seguente esempio di codice.

import numpy as np

array = np.arange(10001)
np.set_printoptions(threshold=np.inf)
print(array)

Produzione:

[    0     1     2     3     4     5     6     7     8     9    10    11
    12    13    14    15    16    17    18    19    20    21    22    23
    24    25    26    27    28    29    30    31    32    33    34    35
    36    37    38    39    40    41    42    43    44    45    46    47
    48    49    50    51    52    53    54    55    56    57    58    59
    60    61    62    63    64    65    66    67    68    69    70    71
    72    73    74    75    76    77    78    79    80    81    82    83
    84    85    86    87    88    89    90    91    92    93    94    95
    96    97    98    99   100   101   102   103   104   105   106   107
   108   109   110   111   112   113   114   115   116   117   118   119
...
  9912  9913  9914  9915  9916  9917  9918  9919  9920  9921  9922  9923
  9924  9925  9926  9927  9928  9929  9930  9931  9932  9933  9934  9935
  9936  9937  9938  9939  9940  9941  9942  9943  9944  9945  9946  9947
  9948  9949  9950  9951  9952  9953  9954  9955  9956  9957  9958  9959
  9960  9961  9962  9963  9964  9965  9966  9967  9968  9969  9970  9971
  9972  9973  9974  9975  9976  9977  9978  9979  9980  9981  9982  9983
  9984  9985  9986  9987  9988  9989  9990  9991  9992  9993  9994  9995
  9996  9997  9998  9999 10000]

Impostiamo il parametro threshold su np.inf con la funzione np.set_printoptions(). Abbiamo quindi stampato l’intero array con la semplice funzione print() in Python. Questo approccio è preferito rispetto al metodo precedente perché questo approccio richiede solo la libreria NumPy.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn