长的NumPy数组无法完全打印?
我想打印两个1001行1列的数组的完整内容,但Python只给我显示了一部分,像这样:
array([[5,45],
[1,23],
......,
[1,24],
[2,31]])
而不是完整的数组。
有没有人能告诉我怎么才能打印出完整的1001行1列的数组呢?
3 个回答
0
以下的方法对我有效:
np.set_printoptions(threshold=sys.maxsize)
6
请查看NumPy教程中的打印数组部分:
如果一个数组太大,无法完整打印,NumPy会自动跳过数组中间的部分,只显示角落的内容:
>>> print(np.arange(10000)) [ 0 1 2 ..., 9997 9998 9999]
...
如果你想让NumPy打印整个数组,而不是跳过中间部分,可以通过设置打印选项来实现。
>>> np.set_printoptions(threshold=nan)
np.set_printoptions
这个函数是NumPy库的一部分。
0
我猜你可能试过像下面这样的简单语句:
print myarray
... 而不是像下面这样更明确的语句:
for each_item in myarray:
print each_item
... 或者甚至:
print ', '.join([str(x) for x in myarray])
你看到输出被省略的原因,可能是因为 numpy
在它的 array
类中实现了一个 _str_
方法,这个方法试图给出一个“合理”的默认字符串表示数组的方式。它们可能认为简单的 print
语句主要是用来调试、记录日志或类似的用途,而结果的报告或者将结果传递给其他进程或存储,应该通过更明确的方式来处理数据(就像我在这里展示的那样)。