Long NumPy阵列无法完全打印?

时间:2010-12-24 22:51:33

标签: python arrays numpy options output-formatting

我正在尝试打印两个1001x1数组的完整内容,但Python只给出截断输出,如下所示:

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

而不是完整的数组。

任何人都可以给我解决方法如何获得完整的1001x1阵列吗?

2 个答案:

答案 0 :(得分:6)

请参阅NumPy教程中的Printing Arrays部分:

  

如果数组太大而无法打印,NumPy会自动跳过数组的中心部分,只打印角落:

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

...

     

要禁用此行为并强制NumPy打印整个阵列,您可以使用set_printoptions更改打印选项。

>>> np.set_printoptions(threshold=nan)

np.set_printoptions函数是NumPy库的一部分。

答案 1 :(得分:0)

我猜你曾尝试过一个简单的陈述,如:

print myarray

...而不是更明确的事情:

for each_item in myarray:
    print each_item

......甚至:

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

你看到elid输出的原因可能是因为numpy_str_类中实现了 array 方法,试图给出“合理的“默认 数组的字符串表示形式。据推测,它们假设简单print语句主要用于调试,日志记录或类似目的,并且结果报告或将结果编组到其他进程或存储,将使用更明确的方式完成迭代数据(正如我在这里所示)。