* kernels: Estos son los motores computacionales detrás de un cuaderno. Ejecuta el código que escribe y proporcionan los resultados. Diferentes núcleos admiten diferentes lenguajes de programación (Python, R, Julia, etc.), lo que le permite usar el mejor idioma para su tarea. El núcleo es lo que permite que el cuaderno * haga * cosas más allá de la edición de texto.
* Bibliotecas y paquetes: Estas son colecciones de código preescritado que extienden la funcionalidad del lenguaje de programación del núcleo. Por ejemplo, en un cuaderno de Python, puede usar bibliotecas como Numpy para cálculo numérico, pandas para manipulación de datos, matplotlib para trazar o tensorflow/pytorch para aprendizaje automático. Estas bibliotecas expanden drásticamente lo que puede lograr dentro del cuaderno.
* Extensiones y complementos: Algunos entornos de cuaderno (como Jupyter Notebook y Jupyterlab) admiten extensiones y complementos que agregan características como:
* Edición mejorada: Destacación de sintaxis, finalización de código, revestimientos.
* Visualizaciones: Gráficos y gráficos interactivos.
* Integración de control de versiones: Trabaja sin problemas con Git.
* Herramientas de colaboración: Permita que varios usuarios trabajen en el mismo cuaderno simultáneamente.
* Gestión de archivos: Formas más fáciles de interactuar con archivos y datos.
* comandos mágicos (en Jupyter): Estos son comandos especiales (prefijados con `%` o `%%` en Jupyter) que proporcionan funcionalidad adicional dentro del entorno de cuaderno en sí, a menudo interactuando directamente con el sistema operativo o las partes internas del cuaderno. Los ejemplos incluyen ejecutar comandos de shell, ejecución del código de tiempo o controlar la pantalla del cuaderno.
En esencia, la capacidad central es el núcleo, pero la potencia real proviene de la combinación del núcleo, las bibliotecas que carga y cualquier extensiones o complementos que aumente la interfaz del cuaderno y su funcionalidad.