I tested PyCharm and IDLE, both of them print the 7th number to a second line.
Input:
import numpy as np
a=np.array([ 1.02090721, 1.02763091, 1.03899317, 1.00630297, 1.00127454, 0.89916715, 1.04486896])
print(a)
Output:
[ 1.02090721 1.02763091 1.03899317 1.00630297 1.00127454 0.89916715
1.04486896]
How can I print them in one line?
When you wish to print the list elements in a single line with the spaces in between, you can make use of the "*" operator for the same. Using this operator, you can print all the elements of the list in a new separate line with spaces in between every element using sep attribute such as sep=”/n” or sep=”,”.
To print a NumPy array without enclosing square brackets, the most Pythonic way is to unpack all array values into the print() function and use the sep=', ' argument to separate the array elements with a comma and a space.
Let us see how to save a numpy array to a text file. Creating a text file using the in-built open() function and then converting the array into string and writing it into the text file using the write() function. Finally closing the file using close() function.
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 np
from contextlib import contextmanager
@contextmanager
def 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
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With