Lably
Skip to content

IPython

Advanced interactive shell for Python

  • 3 min read
  • 6 chapters

Related on Lably

Through Python (programming language), NumPy and SciPy

  • Interactive shells (terminal and Qt-based).
  • A browser-based notebook interface with support for code, text, mathematical expressions, inline plots and other media.
  • Support for interactive data visualization and use of GUI toolkits.
  • Flexible, embeddable interpreters to load into one's own projects.
  • Tools for parallel computing.

IPython is a NumFOCUS fiscally sponsored project.

Parallel computing

IPython is based on an architecture that provides parallel and distributed computing. IPython enables parallel applications to be developed, executed, debugged and monitored interactively, hence the I (Interactive) in IPython. This architecture abstracts out parallelism, enabling IPython to support many different styles of parallelism including:

  • Single program, multiple data (SPMD) parallelism
  • Multiple program, multiple data (MPMD) parallelism
  • Message passing using MPI
  • Task parallelism
  • Data parallelism
  • Combinations of these approaches
  • Custom user defined approaches

With the release of IPython 4.0, the parallel computing capabilities were made optional and released under the ipyparallel python package. And most of the capabilities of ipyparallel are now covered by more mature libraries like Dask.

IPython frequently draws from SciPy stack libraries like NumPy and SciPy, often installed alongside one of many Scientific Python distributions. IPython provides integration with some libraries of the SciPy stack, notably matplotlib, producing inline graphs when used with the Jupyter notebook. Python libraries can implement IPython specific hooks to customize rich object display. SymPy for example implements rendering of mathematical expressions as rendered LaTeX when used within IPython context, and Pandas dataframe use an HTML representation.

Sign in to keep reading

5 more chapters are free with a Lably account.

More in Computing and communication