IPython

From Wikipedia, the free encyclopedia
Jump to: navigation, search
IPython
IPython Logo.png
IPython Shell
Screenshot of IPython
Original author(s) Fernando Perez and others
Stable release 2.0 / 1 April 2014; 17 days ago (2014-04-01)
Written in Python, JavaScript, CSS, HTML
Operating system Cross-platform
Type Shell
License BSD
Website www.ipython.org

IPython is a command shell for interactive computing in multiple programming languages, originally developed for the Python programming language, that offers enhanced introspection, rich media, additional shell syntax, tab completion, and rich history. IPython currently provides the following features:

  • Powerful interactive shells (terminal and Qt-based).
  • A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
  • Support for interactive data visualization and use of GUI toolkits.
  • Flexible, embeddable interpreters to load into ones own projects.
  • Easy to use, high performance tools for parallel computing.

Parallel computing[edit]

IPython has a sophisticated and powerful architecture for parallel and distributed computing. IPython enables all types of parallel applications to be developed, executed, debugged and monitored interactively. Hence, the I in IPython. This architecture abstracts out parallelism in a very general way, which enables IPython to support many different styles of parallelism[1] including:

  • Single program, multiple data (SPMD) parallelism.
  • Multiple program, multiple data (MIMD) parallelism.
  • Message passing using MPI.
  • Task farming.
  • Data parallel.
  • Combinations of these approaches.
  • Custom user defined approaches.
Architectural View of IPython's parallel machinery

Notebook[edit]

Since the 0.12 release,[2] IPython provides a new rich text web interface: Notebook. Notebook is composed of two components: a JSON-based format to share Python source and its rich formating and response and the web interface itself. This interface is close to Maple's and Mathematica's. It allows for code, output and annotation to be combined in a signal interactive environment.

IPython notebook

Other features[edit]

IPython allows non-blocking interaction with Tkinter, PyGTK, PyQt/PySide and wxPython (the standard Python shell only allows interaction with Tkinter). IPython can interactively manage parallel computing clusters using asynchronous status callbacks and/or MPI. IPython can also be used as a system shell replacement.[3] Its default behavior is largely similar to Unix shells, but it allows customization and the flexibility of executing code in a live Python environment.

In the media[edit]

IPython has been mentioned in the popular computing press,[4] and it has a presence at scientific conferences.[5] For scientific and engineering work, it is often presented as a companion tool to matplotlib.[6]

Grants and awards[edit]

Beginning Jan 1, 2013, the Alfred P. Sloan Foundation is going to support IPython development for two years.[7]

On March 23, 2013, Fernando Perez was awarded the Free Software Foundation Advancement of Free Software award for IPython.

In August 2013, Microsoft Corp. made a donation of $100,000 to sponsor IPython’s continued development.[8]

In January 2014, it won the Jolt Productivity Award[9] from Dr. Dobb's in the category of coding tools.

References[edit]

  1. ^ "Using IPython for Parallel computing - IPython docs". 
  2. ^ "Notebook's announcement- 0.12 release note". 
  3. ^ McKinney, Wes (2012). "Chapter 3". Python for Data Analysis. ISBN 978-1-449-31979-3. 
  4. ^ Koziol, Conrad (12 September 2005). "Introducing IPython". NewsForge. 
  5. ^ "IPython Presentations". 
  6. ^ Pérez, Fernando; Granger, Brian E. (2007). "IPython: A System for Interactive Scientific Computing". Computing in Science & Engineering 9 (3). 
  7. ^ "Announcement in scipy mailing list". 
  8. ^ "IPython Announcement". 
  9. ^ "Jolt Productivity Award write-up in Dr. Dobb's". 

External links[edit]