class_docstr: Frame stacking wrapper for vectorized environment
  
  :param venv: (VecEnv) the vectorized environment to wrap
  :param n_stack: (int) Number of frames to stack
code: def __init__(self, venv, n_stack):
      self.venv = venv
      self.n_stack = n_stack
      wrapped_obs_space = venv.observation_space
      low = np.repeat(wrapped_obs_space.low, self.n_stack, axis=-1)
      high = np.repeat(wrapped_obs_space.high, self.n_stack, axis=-1)
      self.stackedobs = np.zeros(
          (venv.num_envs,) + low.shape, low.dtype
      )
      observation_space = spaces.Box(
          low=low, high=high, dtype=venv.observation_space.dtype
      )
      VecEnvWrapper.__init__(
          self, venv, observation_space=observation_space
      )
  
file_path: stable-baselines/stable_baselines/common/vec_env/vec_frame_stack.py
imports: import warnings
  import numpy
  from gym import spaces
  from stable_baselines.common.vec_env.base_vec_env import VecEnvWrapper
label_desc: Use image node_id 1 to create a new VecFrameStack object from inherited base classes: VecEnvWrapper with example: obj = VecFrameStack(venv, n_stack)