我正在使用Jupyter笔记本。我有一个非常宽的屏幕,但显示的输出(例如,当我打印numpy
数组时)的格式就像屏幕很窄。
我找到了一种增加细胞宽度的方法,
from IPython.core.display import HTML
HTML("<style>.container { width:95% !important; }</style>")
但这似乎只影响输入,而不影响输出(见截图):
我已尝试在linewidth
中设置numpy.set_printoptions
选项,我已尝试设置numpy.core.arrayprint._line_width
,没有...
编辑:使用matplotlib我可以使用命令%matplotlib inline
设置绘图的宽度(我使用魔法plt.rcParams['figure.figsize']=[X,Y]
绘制在笔记本中)。事实证明,我可以增加X
以使绘图一直水平填充输出单元格。这意味着(我认为)原始问题是numpy
的事情。
答案 0 :(得分:9)
我发现this answer有助于创建我自己的:
import numpy as np
np.set_printoptions(edgeitems=30, linewidth=100000,
formatter=dict(float=lambda x: "%.3g" % x))
荒谬的线宽仅表示edgeitems
,窗口的宽度将决定换行/换行的时间。
如果我缩小窗口,看起来像这样,所以你可能仍然需要使用edgeitems
或格式化:
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],