打印完整的 Numpy 数组而不截断
Numpy 是一个功能强大的 Python 库,用于处理大型多维数组。但是,在打印大型 Numpy 数组时,解释器通常会截断输出以节省空间,并且仅显示该数组的几个元素。在本文中,我们将展示如何打印完整的 Numpy 数组而不截断。
为了正确理解问题陈述,请考虑以下示例:
输入
aray = np.arange(1100)
输出
[ 0 1 2 ... 1097 1098 1099]
在上面的例子中,我们创建了一个包含 1100 个元素的数组。当我们打印它时,Python 解释器会自动截断它以仅显示如上所示的一小部分输出。它使用三个点 (…) 来指定不显示某些元素。
用于打印完整 Numpy 数组而不截断的 Python 程序
要打印 numpy 数组的所有元素而不截断,我们可以使用下面提到的方法:
set_printoptions()
array2string()
使用 set_printoptions()
NumPy 的 set_printoptions() 方法允许我们修改打印时显示数组的方式。要打印整个数组,我们将"threshold"参数设置为"np.inf"。
示例 1
以下示例说明如何使用 set_printoptions() 打印整个 numpy 数组而不截断。
方法
第一步是导入引用名称为"np"的 numpy 包。
接下来,我们使用 random.rand() 方法创建一个 numpy 数组,以生成一个大小为 5x3 的随机数组,其中填充了 0 到 1 之间的值。
现在,使用 set_printoptions() 通过将阈值参数设置为 np.inf 来显示整个数组。这里,np.inf 表示没有阈值。
最后,我们使用内置方法 print() 来显示结果。
import numpy as np # 生成随机 NumPy 数组 aray = np.random.rand(5, 3) # 设置打印选项 np.set_printoptions(threshold = np.inf) # 打印生成的数组 print(aray)
输出
[[0.20389255 0.29142771 0.26634027] [0.95128389 0.11253549 0.55029953] [0.42578651 0.26762357 0.0058134 ] [0.47427662 0.080491 0.98576308] [0.29514599 0.44207715 0.51177261]]
示例 2
在此示例中,我们不会生成随机数组,而是使用 numpy 的内置方法 arange() 创建一个包含从 0 开始的 40 个连续值的数组。arange() 方法返回一个 numpy 数组。
import numpy as np # 创建一个包含 40 个值的 NumPy 数组 aray = np.arange(40) # 在此处设置打印选项 np.set_printoptions(threshold = np.inf) # 显示结果 print(aray)
输出
[ 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]
示例 3
这是另一个示例,展示了如何在不截断的情况下打印完整的 numpy 数组。在这个特定的例子中,我们将使用 random.rand() 方法创建一个 numpy 数组,就像我们在第一个例子中所做的那样。使用 set_printoptions() 通过将阈值设置为"sys.maxsize",我们将显示整个数组。这里,sys.maxsize 属性提供了当前系统中可以表示为整数的最大值。
# 导入所需的包 import numpy as np import sys # 生成随机 NumPy 数组 aray = np.random.rand(5, 3) # 设置打印选项 np.set_printoptions(threshold = sys.maxsize) # 显示结果 print(aray)
输出
[[0.83641797 0.63958049 0.22548871] [0.07813775 0.75781466 0.0283849 ] [0.79322127 0.2648928 0.19495721] [0.44913602 0.17464489 0.67625814] [0.55415935 0.40091674 0.1828985 ]]
使用 array2string()
NumPy 的 array2string() 方法将给定数组转换为字符串表示。同样,要打印整个数组,我们将给定数组作为参数传递,并将名为"threshold"的附加参数设置为"np.inf"。 'np.inf' 表示没有截断阈值。
示例
在下面的示例中,我们将创建一个大小为 5x5 的随机 numpy 数组,其中填充的值介于 0 和 1 之间。要打印整个数组而不进行截断,我们将使用 np.array2string() 方法,方法是传递 numpy 数组并将阈值参数设置为 np.inf。
import numpy as np # 生成随机 NumPy 数组 aray = np.random.rand(5, 5) # 将数组转换为字符串 arr_st = np.array2string(aray, Threshold = np.inf) # 打印转换后的数组字符串 print(arr_st)
输出
[[0.20558096 0.63450548 0.84019308 0.80807701 0.50960877] [0.30689032 0.54547474 0.23338944 0.67067941 0.81017394] [0.69467855 0.57111774 0.98147844 0.4711527 0.85500914] [0.83951451 0.83768907 0.027058 0.06053751 0.57541982] [0.45509108 0.6337008 0.65374078 0.38031754 0.0921497 ]]
结论
在本文中,我们学习了两种使用示例程序打印完整 Numpy 数组而不截断的方法。这两种方法是 array2string() 和 set_printoptions() 方法。它们采用一个名为"threshold"的参数,可以将其设置为"np.inf"或"sys.maxsize",以打印 numpy 数组的所有元素而不截断。
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

