How to print a numpy.array in one line? How to print a numpy.array in one line? arrays arrays

How to print a numpy.array in one line?


There is np.set_printoptions which allows to modify the "line-width" of the printed NumPy array:

>>> import numpy as np>>> np.set_printoptions(linewidth=np.inf)>>> a = np.array([ 1.02090721,  1.02763091,  1.03899317,  1.00630297,  1.00127454, 0.89916715,  1.04486896])>>> print(a)[1.02090721 1.02763091 1.03899317 1.00630297 1.00127454 0.89916715 1.04486896]

It will print all 1D arrays in one line. It won't work that easily with multidimensional arrays.


Similar to here you could use a contextmanager if you just want to temporarily change that:

import numpy as npfrom contextlib import contextmanager@contextmanagerdef print_array_on_one_line():    oldoptions = np.get_printoptions()    np.set_printoptions(linewidth=np.inf)    yield    np.set_printoptions(**oldoptions)

Then you use it like this (fresh interpreter session assumed):

>>> import numpy as np>>> np.random.random(10)  # default[0.12854047 0.35702647 0.61189795 0.43945279 0.04606867 0.83215714 0.4274313  0.6213961  0.29540808 0.13134124]>>> with print_array_on_one_line():  # in this block it will be in one line...     print(np.random.random(10))[0.86671089 0.68990916 0.97760075 0.51284228 0.86199111 0.90252942 0.0689861  0.18049253 0.78477971 0.85592009]>>> np.random.random(10)  # reset[0.65625313 0.58415921 0.17207238 0.12483019 0.59113892 0.19527236 0.20263972 0.30875768 0.50692189 0.02021453]


If you want a customized version of str(a), the answer is array_str:

>>> print(a)[ 1.02090721  1.02763091  1.03899317  1.00630297  1.00127454  0.89916715  1.04486896]>>> str(a)'[1.02090721 1.02763091 1.03899317 1.00630297 1.00127454 0.89916715\n 1.04486896]'>>> np.array_str(a, max_line_width=np.inf)'[1.02090721 1.02763091 1.03899317 1.00630297 1.00127454 0.89916715 1.04486896]'>>> print(np.array_str(a, max_line_width=np.inf)[1.02090721 1.02763091 1.03899317 1.00630297 1.00127454 0.89916715 1.04486896]

If you want to change the printout of every array, not just here, see set_printoptions.


Type cast to a list when printing.

import numpy as npa=np.array([ 1.02090721,  1.02763091,  1.03899317,  1.00630297,  1.00127454, 0.89916715,  1.04486896])print(list(a))

This will print on a single line.