Faser
Faser

Reputation: 1274

Python terminal output width

My Python 3.5.2 output in the terminal (on a mac) is limited to a width of ca. 80px, even if I increase the size of the terminal window.

This narrow width causes a bunch of line breaks when outputting long arrays which is really a hassle. How do I tell python to use the full command line window width?

For the record, i am not seeing this problem in any other program, for instance my c++ output looks just fine.

Upvotes: 10

Views: 15555

Answers (4)

Farid Khafizov
Farid Khafizov

Reputation: 1210

Default output of a 2x15 matrix is broken:

a.T
array([[ 0.2, -1.4, -0.8,  1.3, -1.5, -1.4,  0.6, -1.5,  0.4, -0.9,  0.3,
         1.1,  0.5, -0.3,  1.1],
       [ 1.3, -1.2,  1.6, -1.4,  0.9, -1.2, -1.9,  0.9,  1.8, -1.8,  1.7,
        -1.3,  1.4, -1.7, -1.3]])

Output is fixed using numpy set_printoptions() command

import sys
np.set_printoptions(suppress=True,linewidth=sys.maxsize,threshold=sys.maxsize)
a.T
[[ 0.2 -1.4 -0.8  1.3 -1.5 -1.4  0.6 -1.5  0.4 -0.9  0.3  1.1  0.5 -0.3  1.1]
 [ 1.3 -1.2  1.6 -1.4  0.9 -1.2 -1.9  0.9  1.8 -1.8  1.7 -1.3  1.4 -1.7 -1.3]]

System and numpy versions:

sys.version =  3.8.3 (default, Jul  2 2020, 17:30:36) [MSC v.1916 64 bit (AMD64)]
numpy.__version__ =  1.18.5

Upvotes: 1

Sam Huang
Sam Huang

Reputation: 71

In Python 3.7 and above, you can use

from shutil import get_terminal_size
pd.set_option('display.width', get_terminal_size()[0])

Upvotes: 7

chongzixin
chongzixin

Reputation: 1981

I have the same problem while using pandas. So if this is what you are trying to solve, I fixed mine by doing pd.set_option('display.width', pd.util.terminal.get_terminal_size()[0])

Upvotes: 3

Faser
Faser

Reputation: 1274

For numpy, it turns out you can enable the full output by setting

np.set_printoptions(suppress=True,linewidth=np.nan,threshold=np.nan).

Upvotes: 9

Related Questions