De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

IPython (Interactive Python) es un shell de comandos para computación interactiva en múltiples lenguajes de programación, desarrollado originalmente para el lenguaje de programación Python , que ofrece introspección , rich media , sintaxis de shell, finalización de tabulaciones e historial. IPython proporciona las siguientes características:

  • Conchas interactivas (terminales y basadas en Qt ).
  • Una interfaz de portátil basada en navegador con soporte para código, texto, expresiones matemáticas, gráficos en línea y otros medios.
  • Soporte para visualización de datos interactiva y uso de kits de herramientas GUI.
  • Intérpretes flexibles e integrables para cargar en los propios proyectos.
  • Herramientas para computación paralela .

Computación paralela [ editar ]

Vista arquitectónica de la maquinaria paralela de IPython

IPython se basa en una arquitectura que proporciona computación distribuida y paralela. IPython permite desarrollar, ejecutar, depurar y monitorear aplicaciones paralelas de forma interactiva, de ahí la I (Interactiva) en IPython. [3] Esta arquitectura abstrae el paralelismo, lo que permite que IPython admita muchos estilos diferentes de paralelismo [4] que incluyen:

  • Paralelismo de un solo programa, múltiples datos ( SPMD )
  • Paralelismo de múltiples programas, múltiples datos ( MPMD )
  • Paso de mensajes usando MPI
  • Paralelismo de tareas
  • Paralelismo de datos
  • Combinaciones de estos enfoques
  • Enfoques personalizados definidos por el usuario

Con el lanzamiento de IPython 4.0, las capacidades de computación paralela se hicieron opcionales y se lanzaron bajo el paquete ipyparallel python. Y la mayoría de las capacidades de ipyparallel ahora están cubiertas por bibliotecas más maduras como Dask .

IPython se basa con frecuencia en bibliotecas de pila de SciPy [5] como NumPy y SciPy , a menudo instaladas junto con una de las muchas distribuciones de Scientific Python. [5] IPython proporciona integración con algunas bibliotecas de la pila SciPy , en particular matplotlib , produciendo gráficos en línea cuando se usa con el cuaderno Jupyter. Las bibliotecas de Python pueden implementar enlaces específicos de IPython para personalizar la visualización de objetos enriquecidos. SymPy, por ejemplo, implementa la representación de expresiones matemáticas como LaTeX renderizada cuando se usa dentro del contexto de IPython, y el marco de datos de Pandas usa una representación HTML. [6]

Otras características [ editar ]

IPython permite la interacción sin bloqueo con Tkinter , PyGTK , PyQt / PySide y wxPython (el shell estándar de Python solo permite la interacción con Tkinter). IPython puede administrar de forma interactiva clústeres de computación paralela utilizando devoluciones de llamada de estado asíncronas y / o MPI . IPython también se puede utilizar como un reemplazo del shell del sistema. [7] Su comportamiento predeterminado es muy similar al de los shells de Unix., pero permite la personalización y la flexibilidad de ejecutar código en un entorno Python en vivo. El uso de IPython como reemplazo de shell es menos común y ahora se recomienda usar Xonsh, que proporciona la mayor parte de la función de IPython con mejores integraciones de shell.

Fin de la compatibilidad con Python 2 [ editar ]

La serie IPython 5.x (Long Time Support) es la última versión de IPython compatible con Python 2. El proyecto IPython se comprometió a no admitir Python 2 más allá de 2020 [8] al ser uno de los primeros proyectos en unirse a la Declaración de Python 3 , el La serie 6.x solo es compatible con Python 3 y superior. Sin embargo, todavía es posible ejecutar un kernel IPython y un servidor Jupyter Notebook en diferentes versiones de Python, lo que permite a los usuarios acceder a Python 2 en la versión más reciente de Jupyter.

Proyecto Jupyter [ editar ]

Interfaz del cuaderno IPython antiguo

En 2014, Fernando Pérez anunció un proyecto derivado de IPython llamado Project Jupyter . [9] IPython siguió existiendo como un shell y kernel de Python para Jupyter, pero la interfaz del portátil y otras partes de IPython que no dependen del lenguaje se movieron bajo el nombre de Jupyter. [10] [11] Jupyter es agnóstico lenguaje y su nombre es una referencia a los lenguajes de programación básicos soportados por Jupyter, que son Julia , Python , y R . [12]

Jupyter Notebook (anteriormente IPython Notebooks) es un entorno computacional interactivo basado en web para crear, ejecutar y visualizar cuadernos de Jupyter. Es similar a la interfaz de cuaderno de otros programas como Maple , Mathematica y SageMath , un estilo de interfaz computacional que se originó con Mathematica en la década de 1980. [13] Admite entornos de ejecución (también conocidos como núcleos) en docenas de idiomas. De forma predeterminada, Jupyter Notebook se envía con el kernel de IPython, pero hay más de 100 kernels de Jupyter a partir de mayo de 2018.

En los medios [ editar ]

IPython ha sido mencionado en la prensa informática popular y otros medios populares, [14] [13] y tiene presencia en conferencias científicas. [15] Para trabajos científicos y de ingeniería, a menudo se presenta como una herramienta complementaria a matplotlib . [dieciséis]

Subvenciones y premios [ editar ]

A partir del 1 de enero de 2013, la Fundación Alfred P. Sloan anunció que apoyaría el desarrollo de IPython durante dos años. [17]

El 23 de marzo de 2013, Fernando Pérez recibió el premio Free Software Foundation Advancement of Free Software por IPython.

En agosto de 2013, Microsoft hizo una donación de $ 100,000 para patrocinar el desarrollo continuo de IPython. [18]

En enero de 2014, ganó el premio Jolt Productivity Award [19] del Dr. Dobb's en la categoría de herramientas de codificación. En julio de 2015, el proyecto obtuvo una financiación de $ 6 millones de la Fundación Gordon y Betty Moore, la Fundación Alfred P. Sloan y Leona M. y Harry B. Helmsley Charitable Trust. [20]

En mayo de 2018, recibió el premio ACM Software System Award 2017. [21] Es el equipo más grande que ha ganado el premio. [22]

Ver también [ editar ]

  • Python (lenguaje de programación)
  • Cuaderno de laboratorio electrónico
  • SageMath
  • Proyecto Jupyter

Referencias [ editar ]

  1. ^ a b "El cuaderno de IPython: una retrospectiva histórica" . Blog de Fernando Perez. 8 de enero de 2012.
  2. ^ https://pypi.org/project/ipython/#history .
  3. ^ Helen, Shen (2014). "Cuadernos interactivos: compartir el código" . Naturaleza . 515 (7525): 151-152. doi : 10.1038 / 515151a . PMID 25373681 . 
  4. ^ "Uso de IPython para computación paralela - Documentos de IPython" .
  5. ^ a b "Pila de ciencia ficción" .
  6. ^ "Impresión - Documentación de SymPy 1.1" . docs.sympy.org . Consultado el 11 de abril de 2018 .
  7. ^ McKinney, Wes (2012). "Capítulo 3" . Python para análisis de datos . ISBN 978-1-449-31979-3.
  8. ^ "Lanzamiento de IPython 5.0 - Blog de Jupyter" . Blog de Jupyter . 8 de julio de 2016 . Consultado el 11 de abril de 2018 .
  9. ^ "Proyecto Jupyter // Speaker Deck" .
  10. ^ "El portátil, la consola Qt y una serie de otras piezas ahora son parte de Jupyter" .
  11. ^ "The Big Split ™" .
  12. ^ https://github.com/jupyter/design/wiki/Jupyter-Logo
  13. ^ a b Somers, James. "El artículo científico es obsoleto" . El Atlántico . Consultado el 10 de abril de 2018 .
  14. ^ Koziol, Conrad (12 de septiembre de 2005). "Presentación de IPython" . NewsForge.
  15. ^ "Presentaciones de IPython" .
  16. Pérez, Fernando; Granger, Brian E. (2007). "IPython: un sistema para la informática científica interactiva" (PDF) . Computación en ciencia e ingeniería . 9 (3): 21-29. doi : 10.1109 / MCSE.2007.53 . Archivado desde el original (PDF) el 2 de junio de 2010 . Consultado el 30 de julio de 2015 .
  17. ^ "Anuncio en lista de correo scipy" .
  18. ^ "Anuncio de IPython" .
  19. ^ "Redacción del premio Jolt Productivity Award en el Dr. Dobb" .
  20. ^ "$ 6M para UC Berkeley y Cal Poly para expandir y mejorar el software de código abierto para la informática científica y la ciencia de datos" . Consultado el 13 de agosto de 2015 .
  21. ^ "Noticias recientes del premio del sistema de software" .
  22. ^ "Jupyter recibe el premio ACM Software System Award" .

Enlaces externos [ editar ]

  • Página web oficial
  • Gráficos en línea
  • Proyecto Jupyter