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

Zio*_*fil 15 css python numpy ipython

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

我发现了一种增加细胞宽度的方法

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

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

短输入 更长的投入

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

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

Dha*_*tle 15

我发现这个答案有助于创建我自己的:

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

荒谬的线宽仅表示edgeitems,窗口的宽度将决定何时发生换行/换行.

在此输入图像描述

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

在此输入图像描述

下面是文档set_printoptions,它的下面是相关的:

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

  • linewidth :用于插入换行符的每行字符数(默认为75).

  • 要临时更改选项,请使用“with np.printoptions(youroption=):”。请参阅https://numpy.org/doc/stable/reference/ generated/numpy.set_printoptions.html#numpy.set_printoptions (2认同)

Fra*_*ert 12

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

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],
>>>    ..., 
Run Code Online (Sandbox Code Playgroud)

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

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],
Run Code Online (Sandbox Code Playgroud)

  • python 3.7.3 上的 numpy 版本 1.16.2:`np.set_printoptions(edgeitems=10,linewidth=180)` (4认同)