# MXNet - Python API

Many docstrings contain example code, which
demonstrates the basic usage of the routine. The examples assume that `MXNet` is
imported with:

```python
>>> import mxnet as mx
```

```eval_rst

.. note:: A convenient way to execute examples is the ``%doctest_mode`` mode of
    Jupyter notebook, which allows for pasting of multi-line examples contains
    ``>>>`` and preserves indentation. Run ``%doctest_mode?`` in Jupyter notebook
    for more details.

```

## Table of contents

```eval_rst
.. toctree::
   :maxdepth: 2

   ndarray
   symbol
   module
   kvstore
   io
   optimization
```
