<liclass="toctree-l1 current has-children current-page"><aclass="current reference internal"href="#">Spaces</a><inputchecked=""class="toctree-checkbox"id="toctree-checkbox-1"name="toctree-checkbox-1"role="switch"type="checkbox"/><labelfor="toctree-checkbox-1"><divclass="visually-hidden">Toggle child pages in navigation</div><iclass="icon"><svg><usehref="#svg-arrow-right"></use></svg></i></label><ul>
<liclass="toctree-l1"><aclass="reference external"href="https://github.com/Farama-Foundation/Gymnasium/blob/main/docs/README.md">Contribute to the Docs</a></li>
<emclass="property"><spanclass="pre">class</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.</span></span><spanclass="sig-name descname"><spanclass="pre">Space</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">shape</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Sequence</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">dtype</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Union</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Type</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">str</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">dtype</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">seed</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Union</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="pre">Generator</span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><aclass="headerlink"href="#gymnasium.spaces.Space"title="Permalink to this definition">#</a></dt>
<dd><p>Superclass that is used to define observation and action spaces.</p>
<p>Spaces are crucially used in Gym to define the format of valid actions and observations.
They serve various purposes:</p>
<ulclass="simple">
<li><p>They clearly define how to interact with environments, i.e. they specify what actions need to look like
<li><p>They allow us to work with highly structured data (e.g. in the form of elements of <aclass="reference internal"href="composite/#gymnasium.spaces.Dict"title="gymnasium.spaces.Dict"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Dict</span></code></a> spaces)
<p>Different spaces can be combined hierarchically via container spaces (<aclass="reference internal"href="composite/#gymnasium.spaces.Tuple"title="gymnasium.spaces.Tuple"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Tuple</span></code></a> and <aclass="reference internal"href="composite/#gymnasium.spaces.Dict"title="gymnasium.spaces.Dict"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Dict</span></code></a>) to build a
<aclass="reference internal"href="composite/#gymnasium.spaces.Dict"title="gymnasium.spaces.Dict"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Dict</span></code></a>). Note that parametrized probability distributions (through the
<li><p><strong>shape</strong> (<em>Optional</em><em>[</em><aclass="reference internal"href="composite/#gymnasium.spaces.Sequence"title="gymnasium.spaces.Sequence"><em>Sequence</em></a><em>[</em><em>int</em><em>]</em><em>]</em>) – If elements of the space are numpy arrays, this should specify their shape.</p></li>
<li><p><strong>dtype</strong> (<em>Optional</em><em>[</em><em>Type</em><em> | </em><em>str</em><em>]</em>) – If elements of the space are numpy arrays, this should specify their dtype.</p></li>
<li><p><strong>seed</strong>– Optionally, you can use this argument to seed the RNG that is used to sample from the space</p></li>
<emclass="property"><spanclass="pre">property</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">Space.</span></span><spanclass="sig-name descname"><spanclass="pre">shape</span></span><emclass="property"><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Tuple</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">,</span></span><spanclass="w"></span><spanclass="p"><spanclass="pre">...</span></span><spanclass="p"><spanclass="pre">]</span></span><spanclass="p"><spanclass="pre">]</span></span></em><aclass="headerlink"href="#gymnasium.spaces.space.Space.shape"title="Permalink to this definition">#</a></dt>
<dd><p>Return the shape of the space as an immutable property.</p>
</dd></dl>
<dlclass="py property">
<dtclass="sig sig-object py"id="Space.dtype">
<emclass="property"><spanclass="pre">property</span><spanclass="w"></span></em><spanclass="sig-prename descclassname"><spanclass="pre">Space.</span></span><spanclass="sig-name descname"><spanclass="pre">dtype</span></span><aclass="headerlink"href="#Space.dtype"title="Permalink to this definition">#</a></dt>
<dd><p>Return the data type of this space.</p>
</dd></dl>
</section>
<sectionid="methods">
<h2>Methods<aclass="headerlink"href="#methods"title="Permalink to this heading">#</a></h2>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.space.Space.</span></span><spanclass="sig-name descname"><spanclass="pre">sample</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">mask</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">Any</span><spanclass="p"><spanclass="pre">]</span></span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">T_cov</span></span></span><aclass="headerlink"href="#gymnasium.spaces.space.Space.sample"title="Permalink to this definition">#</a></dt>
<ddclass="field-odd"><p><strong>mask</strong>– A mask used for sampling, expected <codeclass="docutils literal notranslate"><spanclass="pre">dtype=np.int8</span></code> and see sample implementation for expected shape.</p>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.space.Space.</span></span><spanclass="sig-name descname"><spanclass="pre">contains</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">x</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">bool</span></span></span><aclass="headerlink"href="#gymnasium.spaces.space.Space.contains"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.space.Space.</span></span><spanclass="sig-name descname"><spanclass="pre">seed</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">seed</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Optional</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">int</span><spanclass="p"><spanclass="pre">]</span></span></span><spanclass="w"></span><spanclass="o"><spanclass="pre">=</span></span><spanclass="w"></span><spanclass="default_value"><spanclass="pre">None</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span></span></span><aclass="headerlink"href="#gymnasium.spaces.space.Space.seed"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.space.Space.</span></span><spanclass="sig-name descname"><spanclass="pre">to_jsonable</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">sample_n</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">Sequence</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">T_cov</span><spanclass="p"><spanclass="pre">]</span></span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">list</span></span></span><aclass="headerlink"href="#gymnasium.spaces.space.Space.to_jsonable"title="Permalink to this definition">#</a></dt>
<spanclass="sig-prename descclassname"><spanclass="pre">gymnasium.spaces.space.Space.</span></span><spanclass="sig-name descname"><spanclass="pre">from_jsonable</span></span><spanclass="sig-paren">(</span><emclass="sig-param"><spanclass="n"><spanclass="pre">self</span></span></em>, <emclass="sig-param"><spanclass="n"><spanclass="pre">sample_n</span></span><spanclass="p"><spanclass="pre">:</span></span><spanclass="w"></span><spanclass="n"><spanclass="pre">list</span></span></em><spanclass="sig-paren">)</span><spanclass="sig-return"><spanclass="sig-return-icon">→</span><spanclass="sig-return-typehint"><spanclass="pre">List</span><spanclass="p"><spanclass="pre">[</span></span><spanclass="pre">T_cov</span><spanclass="p"><spanclass="pre">]</span></span></span></span><aclass="headerlink"href="#gymnasium.spaces.space.Space.from_jsonable"title="Permalink to this definition">#</a></dt>
<li><p><aclass="reference internal"href="fundamental/#gymnasium.spaces.Box"title="gymnasium.spaces.Box"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Box</span></code></a> - Supports continuous (and discrete) vectors or matrices, used for vector observations, images, etc</p></li>
<li><p><aclass="reference internal"href="fundamental/#gymnasium.spaces.Discrete"title="gymnasium.spaces.Discrete"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Discrete</span></code></a> - Supports a single discrete number of values with an optional start for the values</p></li>
<li><p><aclass="reference internal"href="fundamental/#gymnasium.spaces.MultiDiscrete"title="gymnasium.spaces.MultiDiscrete"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">MultiDiscrete</span></code></a> - Supports single or matrices of binary values, used for holding down a button or if an agent has an object</p></li>
<li><p><aclass="reference internal"href="fundamental/#gymnasium.spaces.MultiBinary"title="gymnasium.spaces.MultiBinary"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">MultiBinary</span></code></a> - Supports multiple discrete values with multiple axes, used for controller actions</p></li>
<li><p><aclass="reference internal"href="fundamental/#gymnasium.spaces.Text"title="gymnasium.spaces.Text"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Text</span></code></a> - Supports strings, used for passing agent messages, mission details, etc</p></li>
<li><p><aclass="reference internal"href="composite/#gymnasium.spaces.Dict"title="gymnasium.spaces.Dict"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Dict</span></code></a> - Supports a dictionary of keys and subspaces, used for a fixed number of unordered spaces</p></li>
<li><p><aclass="reference internal"href="composite/#gymnasium.spaces.Tuple"title="gymnasium.spaces.Tuple"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Tuple</span></code></a> - Supports a tuple of subspaces, used for multiple for a fixed number of ordered spaces</p></li>
<li><p><aclass="reference internal"href="composite/#gymnasium.spaces.Sequence"title="gymnasium.spaces.Sequence"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Sequence</span></code></a> - Supports a variable number of instances of a single subspace, used for entities spaces or selecting a variable number of actions</p></li>
<li><p><aclass="reference internal"href="composite/#gymnasium.spaces.Graph"title="gymnasium.spaces.Graph"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">Graph</span></code></a> - Supports graph based actions or observations with discrete or continuous nodes and edge values.</p></li>
<li><p><aclass="reference internal"href="utils/#gymnasium.spaces.utils.flatdim"title="gymnasium.spaces.utils.flatdim"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">utils.flatdim</span></code></a> - The number of dimensions the flattened space will contain</p></li>
<li><p><aclass="reference internal"href="utils/#gymnasium.spaces.utils.flatten_space"title="gymnasium.spaces.utils.flatten_space"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">utils.flatten_space</span></code></a> - Flattens a space for which the <cite>flattened</cite> space instances will contain</p></li>
<li><p><aclass="reference internal"href="utils/#gymnasium.spaces.utils.flatten"title="gymnasium.spaces.utils.flatten"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">utils.flatten</span></code></a> - Flattens an instance of a space that is contained within the flattened version of the space</p></li>
<li><p><aclass="reference internal"href="utils/#gymnasium.spaces.utils.unflatten"title="gymnasium.spaces.utils.unflatten"><codeclass="xref py py-class docutils literal notranslate"><spanclass="pre">utils.unflatten</span></code></a> - The reverse of the <cite>flatten_space</cite> function</p></li>