Martin Vegter Martin Vegter - 24 days ago 10
Python Question

ipython: how to set terminal width

When I use

ipython terminal
and want to print a
numpy.ndarray
which has many columns, the lines are automatically broken somewhere around 80 characters (i.e. the width of the lines is cca 80 chars):

z = zeros((2,20))
print z


Presumably, ipython expects that my terminal has 80 columns. In fact however, my terminal has width of 176 characters and I would like to use the full width.

I have tried changing the following parameter, but this has no effect:

c.PlainTextFormatter.max_width = 160


How can I tell
ipython
to use full width of my terminal ?


I am using
ipython 1.2.1
on Debian Wheezy

Answer

After some digging through the code, it appears that the variable you're looking for is numpy.core.arrayprint._line_width, which is 75 by default. Setting it to 160 worked for me:

>>> numpy.zeros((2, 20))
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.]])

The function used by default for array formatting is numpy.core.numeric.array_repr, although you can change this with numpy.core.numeric.set_string_function.