列印完整的 NumPy 陣列

Muhammad Maisam Abbas 2021年10月2日
列印完整的 NumPy 陣列

本教程將介紹如何在 Python 中列印完整的 NumPy 陣列。

使用 Python 中的 numpy.set_printoptions() 函式列印完整的 NumPy 陣列

預設情況下,如果我們的陣列長度很大,Python 會在列印陣列時截斷輸出。下面的程式碼示例演示了這種現象。

import numpy as np

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

輸出:

[   0    1    2 ... 9997 9998 9999]

在上面的程式碼中,我們首先使用 Python 中的 np.arange() 函式建立了一個 NumPy 陣列 array,其中包含從 0 到 9999 的數值。然後我們使用 print() 函式列印陣列的元素。我們得到一個截斷的輸出,因為陣列太大而無法完全顯示。

這個問題可以通過 numpy.set_printoptions() 函式來解決。它在 Python 中設定與列印陣列相關的不同引數。我們可以使用 numpy.set_printoptions() 函式的 threshold 引數來 sys.maxsize 列印完整的 NumPy 陣列。要使用 sys.maxsize 屬性,我們還必須匯入 sys 庫。下面的程式碼示例顯示瞭如何在 Python 中使用 numpy.set_printoptions() 函式和 sys.maxsize 屬性列印完整的 NumPy 陣列。

import sys
import numpy as np

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

輸出:

[    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]

在上面的程式碼中,我們首先使用 numpy.arange() 函式建立了一個 NumPy 陣列 array,其中包含從 0 到 10000 的元素。我們使用 np.set_printoptions(threshold = sys.maxsize) 函式將陣列的列印選項設定為最大值。然後我們在 Python 中使用簡單的 print() 函式列印了完整的陣列。

我們的問題還有另一種解決方案,它只涉及使用 NumPy 庫。我們可以在 numpy.set_printoptions() 函式中指定 threshold 等於 np.inf 以在 Python 中列印完整的陣列。np.inf 屬性指定 print() 將無限執行,直到列印整個陣列。請參考以下程式碼示例。

import numpy as np

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

輸出:

[    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]

我們使用 np.set_printoptions() 函式將 threshold 引數設定為 np.inf。然後我們在 Python 中使用簡單的 print() 函式列印了完整的陣列。這種方法優於前一種方法,因為這種方法只需要 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