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

标签 python arrays python-3.x numpy line

我测试了 PyCharm 和 IDLE,它们都将第 7 个数字打印到第二行。

输入:

import numpy as np
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]

如何将它们打印在一行中?

最佳答案

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]

它将在一行中打印所有一维数组。对于多维数组,它不会那么容易工作。


类似于here如果您只是想暂时更改它,您可以使用上下文管理器:

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)

然后你像这样使用它(假设是新的解释器 session ):

>>> 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]

关于python - 如何在一行中打印一个 numpy.array?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49437807/

相关文章:

python - 多处理池生成初始化非常慢,16 个进程需要 100 秒

python - 如何使用带有多个参数的多处理 pool.map

python-3.x - 将字典浮点值四舍五入到小数点后两位 : Python

python - 使用 scipy/numpy 在 Python 中将数组的值设置为 -inf

python webbrowser.open 无法打开长网址

php - 分别获取多维数组中的项

arrays - Ruby on Rails - 将大数据(超过 2.7M)记录播种到生产数据库

c++ - C/C++ 中的 Char 数据类型

python-3.x - PyCharm 中的 Folium map 问题

python - 为什么这个 'optimized'素数检查器的运行速度与普通版本相同?