You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Gymnasium(原OpenAI Gym)的输出显示宽度?

Gymnasium输出格式调整方案

你可以通过以下几种方式,实现类似Pandas中set_option('display.max_columns', 500)或set_option('display.width', 1000)的格式调整效果,让Gymnasium里的观测空间、观测值打印时格式更规整:

问题场景

你的示例代码:

import gymnasium as gym
env = gym.make("LunarLander-v2", render_mode="human")
observation, info = env.reset()

print(f'env.observation_space: {env.observation_space}')
print(f'obs: {observation}')

当前输出(存在自动换行、格式零散的问题):

env.observation_space: Box([-90.        -90.         -5.         -5.         -3.1415927  -5.
  -0.         -0.       ], [90.        90.         5.         5.         3.1415927  5.
  1.         1.       ], (8,), float32)

obs: [-0.00316305  1.3999956  -0.3203935  -0.48554128  0.00367194  0.072574
  0.          0.        ]

解决方案

  • 使用NumPy打印选项
    Gymnasium的Box空间内部基于NumPy数组实现,设置NumPy的打印参数可统一调整格式:

    import numpy as np
    # 设置行宽,避免自动换行
    np.set_printoptions(linewidth=1000)
    
    # 执行原打印代码即可看到规整输出
    print(f'env.observation_space: {env.observation_space}')
    print(f'obs: {observation}')
    

    该方法同时适配observation_space和observation的打印,NumPy还有精度、显示阈值等其他参数可按需调整。

  • 使用pprint模块格式化
    借助Python标准库的pprint模块,自定义宽度和紧凑模式控制输出:

    import pprint
    pp = pprint.PrettyPrinter(width=500, compact=True)
    
    pp.pprint(f'env.observation_space: {env.observation_space}')
    pp.pprint(f'obs: {observation}')
    
  • 针对NumPy数组的array2string方法
    仅适用于observation这类纯NumPy数组的场景,手动指定格式参数:

    print(f'obs: {np.array2string(observation, linewidth=1000)}')
    

    注意:此方法对env.observation_space这类Gymnasium空间对象不适用,但方案1已覆盖该场景。

内容的提问来源于stack exchange,提问作者starriet 차주녕

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 09:02:23