如何设置numpy的最大输出宽度?

时间:2016-05-10 22:23:13

标签: python css numpy ipython

我正在使用Jupyter笔记本。我有一个非常宽的屏幕,但显示的输出(例如,当我打印numpy数组时)的格式就像屏幕很窄。

我找到了一种增加细胞宽度的方法,

from IPython.core.display import HTML
HTML("<style>.container { width:95% !important; }</style>")

但这似乎只影响输入,而不影响输出(见截图):

short input longer input

我已尝试在linewidth中设置numpy.set_printoptions选项,我已尝试设置numpy.core.arrayprint._line_width,没有...

编辑:使用matplotlib我可以使用命令%matplotlib inline设置绘图的宽度(我使用魔法plt.rcParams['figure.figsize']=[X,Y]绘制在笔记本中)。事实证明,我可以增加X以使绘图一直水平填充输出单元格。这意味着(我认为)原始问题是numpy的事情。

2 个答案:

答案 0 :(得分:9)

我发现this answer有助于创建我自己的:

import numpy as np
np.set_printoptions(edgeitems=30, linewidth=100000, 
    formatter=dict(float=lambda x: "%.3g" % x))

荒谬的线宽仅表示edgeitems,窗口的宽度将决定换行/换行的时间。

enter image description here

如果我缩小窗口,看起来像这样,所以你可能仍然需要使用edgeitems或格式化:

enter image description here

set_printoptions的{​​p> Here are the docs,其中以下内容相关:

  • edgeitems:每个维度开头和结尾的摘要中的数组项数(默认为3)。

  • linewidth:为了插入换行符而每行的字符数(默认为75)。

答案 1 :(得分:8)

现在已经有一年了,但也许答案可以帮助其他人。

显示numpy-arrays的方式取决于许多事情。 使用此代码,您可以显示更多项目并使用屏幕的整个宽度:

这是默认

import numpy as np
np.set_printoptions(edgeitems=3)
np.core.arrayprint._line_width = 80

>>> array([[[0, 0, 0, ..., 0, 0, 0],
>>>    [0, 0, 0, ..., 0, 0, 0],
>>>    [0, 0, 0, ..., 0, 0, 0],
>>>    ..., 

使用以下代码增加每个数组边缘(开始和结束)以及线宽显示的项目:

import numpy as np
np.set_printoptions(edgeitems=10)
np.core.arrayprint._line_width = 180

>>> array([[[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0, ...,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
>>>         [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0, ...,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
>>>         [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0, ...,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0],