简体   繁体   English

如何在一行中打印numpy.array?

[英]How to print a numpy.array in one line?

I tested PyCharm and IDLE, both of them print the 7th number to a second line. 我测试了PyCharm和IDLE,它们都将第7个数字打印到第二行。

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? 如何将它们打印在一行中?

If you want a customized version of str(a) , the answer is array_str : 如果你想要一个自定义版本的str(a) ,答案是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 . 如果要更改每个数组的打印输出,而不仅仅是这里,请参阅set_printoptions

There is np.set_printoptions which allows to modify the "line-width" of the printed NumPy array: np.set_printoptions允许修改打印的NumPy数组的“行宽”:

>>> 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. 它将在一行中打印所有1D阵列。 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: 类似,如果您只是想暂时更改它,可以使用contextmanager:

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]

Type cast to a list when printing. 打印时键入强制转换为列表。

import numpy as np
a=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. 这将打印在一行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM