Jump to content

IPython: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 86: Line 86:
{{Third-party|section|date=October 2016}}
{{Third-party|section|date=October 2016}}


In 2014, [[Fernando Pérez (software developer)|Fernando Pérez]] announced a spin-off project from IPython called Project Jupyter.<ref>https://speakerdeck.com/fperez/project-jupyter</ref> IPython will continue to exist as a Python shell and a kernel for Jupyter, while the notebook and other language-agnostic parts of IPython will move under the Jupyter name.<ref>https://github.com/ipython/ipython "The Notebook, Qt console and a number of other pieces are now parts of Jupyter."</ref><ref>https://blog.jupyter.org/2015/04/15/the-big-split/</ref> Jupyter added support for [[Julia (programming language)|Julia]], [[R (programming language)|R]], [[Haskell (programming language)|Haskell]] and [[Ruby (programming language)|Ruby]].<ref>http://jupyter.org/</ref>
In 2014, [[Fernando Pérez (software developer)|Fernando Pérez]] announced a spin-off project from IPython called Project Jupyter.<ref>https://speakerdeck.com/fperez/project-jupyter</ref> IPython will continue to exist as a Python shell and a kernel for Jupyter, while the [[Notebook interface|notebook]] and other language-agnostic parts of IPython will move under the Jupyter name.<ref>https://github.com/ipython/ipython "The Notebook, Qt console and a number of other pieces are now parts of Jupyter."</ref><ref>https://blog.jupyter.org/2015/04/15/the-big-split/</ref> Jupyter added support for [[Julia (programming language)|Julia]], [[R (programming language)|R]], [[Haskell (programming language)|Haskell]] and [[Ruby (programming language)|Ruby]].<ref>http://jupyter.org/</ref>


== In the media ==
== In the media ==

Revision as of 16:52, 23 November 2016

Original author(s)Fernando Perez[1]
Developer(s)Others
Initial release2001; 23 years ago (2001)[1]
Stable release
5.1[2] / 8 July 2016; 8 years ago (2016-07-08)[3]
Preview release
4.1.dev
Repository
Written inPython, JavaScript, CSS, HTML
Operating systemCross-platform
TypeShell
LicenseBSD
Websitewww.ipython.org

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

  • Interactive shells (terminal and Qt-based).
  • A browser-based notebook 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.

Parallel computing

Architectural View of IPython's parallel machinery

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.[4] This architecture abstracts out parallelism, which enables IPython to support many different styles of parallelism[5] including:

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

Notebook

IPython Notebook is a web-based interactive computational environment for creating IPython notebooks. An IPython notebook is a JSON document containing an ordered list of input/output cells which can contain code, text, mathematics, plots and rich media.

IPython notebooks can be converted to a number of open standard output formats (HTML, presentation slides, LaTeX, PDF, ReStructuredText, Markdown, Python) through 'Download As' in the web interface and 'ipython nbconvert' in a shell.

IPython Notebook workflows
IPython Notebook interface

IPython Notebook provides a browser-based REPL built upon a number of popular Open Source libraries:

IPython Notebook connects to an IPython kernel. As of the 2.3 release[6][7] (October 2014), there are currently 49 IPython-compatible kernels for as many programming languages, including Python, R, Julia and Haskell.[8]

IPython Notebook was added to IPython in the 0.12 release[9] (December 2011). IPython Notebook is similar to the notebook interface of other programs such as Maple, Mathematica, and SageMath, a computational interface style that originated with Mathematica in the 1980s.

IPython notebooks frequently draw from SciPy stack[10] libraries like NumPy and SciPy, often installed along with IPython from one of many Scientific Python distributions.[10]

Other features

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.[11] Its default behavior is largely similar to Unix shells, but it allows customization and the flexibility of executing code in a live Python environment.

Project Jupyter

In 2014, Fernando Pérez announced a spin-off project from IPython called Project Jupyter.[12] IPython will continue to exist as a Python shell and a kernel for Jupyter, while the notebook and other language-agnostic parts of IPython will move under the Jupyter name.[13][14] Jupyter added support for Julia, R, Haskell and Ruby.[15]

In the media

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

Grants and awards

Beginning 1 January 2013, the Alfred P. Sloan Foundation announced that it would support IPython development for two years.[19]

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

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

In January 2014, it won the Jolt Productivity Award[21] from Dr. Dobb's in the category of coding tools. In July 2015, the project won a funding of $6 million from Gordon and Betty Moore Foundation, Alfred P. Sloan Foundation and Leona M. and Harry B. Helmsley Charitable Trust.[22]

See also

References

  1. ^ a b The IPython notebook: a historical retrospective, 8 January 2012, Fernando Perez Blog
  2. ^ http://ipython.readthedocs.io/en/stable/whatsnew/version5.html#ipython-5-1
  3. ^ Bussonnier, Matthias (8 July 2016). "Release of IPython 5.0". Project Jupyter. Project Jupyter. Retrieved 9 July 2016.
  4. ^ Helen, Shen (2014). "Interactive notebooks: Sharing the code". Nature. 515 (7525): 151–152. doi:10.1038/515151a.
  5. ^ "Using IPython for Parallel computing - IPython docs".
  6. ^ "What's new in IPython > Issues closed in the 2.x development cycle".
  7. ^ "What's new in IPython > 2.0 Series".
  8. ^ "Projects using IPython > List of (some) IPython compatible kernels".
  9. ^ "Notebook's announcement- 0.12 release note".
  10. ^ a b "SciPy Stack".
  11. ^ McKinney, Wes (2012). "Chapter 3". Python for Data Analysis. ISBN 978-1-449-31979-3.
  12. ^ https://speakerdeck.com/fperez/project-jupyter
  13. ^ https://github.com/ipython/ipython "The Notebook, Qt console and a number of other pieces are now parts of Jupyter."
  14. ^ https://blog.jupyter.org/2015/04/15/the-big-split/
  15. ^ http://jupyter.org/
  16. ^ Koziol, Conrad (12 September 2005). "Introducing IPython". NewsForge.
  17. ^ "IPython Presentations".
  18. ^ Pérez, Fernando; Granger, Brian E. (2007). "IPython: A System for Interactive Scientific Computing" (PDF). Computing in Science & Engineering. 9 (3). Archived from the original (PDF) on 2 June 2010. Retrieved 30 July 2015. {{cite journal}}: Unknown parameter |dead-url= ignored (|url-status= suggested) (help)
  19. ^ "Announcement in scipy mailing list".
  20. ^ "IPython Announcement".
  21. ^ "Jolt Productivity Award write-up in Dr. Dobb's".
  22. ^ "$6M for UC Berkeley and Cal Poly to expand and enhance open-source software for scientific computing and data science". Retrieved 13 August 2015.