8.1.3 MathJax

8.1.3 MathJax

MathJax es una biblioteca javascript que permite visualizar fórmulas matemáticas en navegadores web, utilizando (entre otros) el lenguajes de marcado LaTeX. Para escribir fórmulas matemáticas la celda debe ser de tipo Markdown y tendremos que usar delimitadores especiales.

Fórmulas «en línea»: Se debe usar el delimitador dólar antes y después de la expresión $ … $ Por ejemplo: $ \sum_{x=1}An sin(x) + cos(x) $ produce :^™=1 sin(x) + cos(x)

8.1.3 MathJax

Figura 10: Menú Ayuda de Jupyter Notebook

Fórmulas «de bloque»: Se debe usar el delimitador doble dólar antes y después de la expresión $$ … $$

Por ejemplo: $$ \sum_{x=1}An sin(x) + cos(x) $$ produce:

8.1.3 MathJax

Ejemplos de fórmulas

A continuación veremos distintas fórmulas inspiradas en Motivating Examples de la documentación oficial de Jupyter Notebook. Nótese que aunque no se estén indicando los delimitadores $$ sí habría que ponerlos para conseguir el efecto deseado.

Ecuaciones en varias líneas:

8.1.3 MathJax

Ecuaciones en varias líneas (con alineación):

8.1.3 MathJax

Usando paréntesis:

8.1.3 MathJax

Trabajando con matrices:

8.1.3 MathJax

Algo de probabilidad:

8.1.3 MathJax
Algunos ejemplos con fracciones:

8.1.3 MathJax

Múltiples puntos de alineación:

8.1.3 MathJax

Ejercicio

Escriba en MathJax las siguientes ecuaciones:

Ecuación 1

Ecuación 2

Ecuación 3

8.1.3 MathJax

Ecuación 4

8.1.3 MathJax

Truco: Puede encontrar símbolos matemáticos para Latex en este enlace así como dibujar directamente un símbolo y obtener su referencia a través de la herramienta Detexify.

8.1.4 Comandos especiales

Jupyter Notebook ofrece una gama de comandos especiales que cubren gran variedad de funcionalidades.

Comandos de shell

Podemos ejecutar comandos de «shell» usando el prefijo exclamación !

8.1.3 MathJax

Ejercicio

Ejecute los siguientes comandos del sistema y obtenga la salida en una celda del Notebook:

8.1.3 MathJax

Obteniendo ayuda

Una de las formas más sencillas de obtener información de librerías, funciones o módulos es utilizar el sufijo interrogación ?

8.1.3 MathJax

Ejercicio

Obtenga la documentación de las siguientes funciones:

  • path.dirname
  • match
  • timedelta

Comandos mágicos

Jupyter Notebook, o mejor expresado IPython, admite un conjunto de comandos mágicos que permiten realizar distintas tareas, en muchos casos, no necesariamente relacionadas con Python:

8.1.3 MathJax

Si nos fijamos en el último mensaje, al estar habilitado el modo «automagic», no es estrictamente necesario que usemos el prefijo % para hacer uso de estos comandos. Por ejemplo, si quisiéramos conocer la historia de comandos en el intérprete:

8.1.3 MathJax

Representando gráficas

Otra de las grandes ventajas que ofrece Jupyter Notebook es poder graficar directamente sobre el cuaderno. Para ello utilizamos código Python (en este caso) y una directiva de comando mágico para indicar que se renderice en línea:

8.1.3 MathJax

8.1.3 MathJax

Figura 11: Gráfica sencilla hecha en Jupyter Notebook

Manejando ficheros

Cargando un fichero en la celda actual: Para ello utilizamos el comando %load «ruta/ al/fichero”

Ejecutando un fichero en la celda actual: Para ello utilizamos el comando %run ”ruta/al/fichero”

Escribiendo el contenido de la celda actual a fichero: Para ello utilizamos el comando %writefile ”ruta/al/fichero” como primera línea de la celda y después vendría el código que queremos escribir.

Ejercicio

  • En una celda del «notebook», escriba código Python para crear una lista de 100 números pares.
  • Guarde el contenido de esa celda un fichero Python usando %%writefile
  • Carge este fichero en una celda con %load
  • Ejecútelo con %run

Tiempos de ejecución

Para medir el tiempo de ejecución de una determinada instrucción Python podemos utilizar el comando %timeit que calcula un promedio tras correr repetidas veces el código indicado

8.1.3 MathJax
De igual forma, existe un mecanismo para medir el tiempo de ejecución de una celda completa. En este caso se utiliza el comando %%timeit (nótese la diferencia del doble porcentaje como prefijo):

8.1.3 MathJax

Ejercicio

Mida si hay diferencias significativas en tiempos de ejecución en la creación de distribuciones aleatorias atendiendo a:

  • Tipo de distribución (Poisson, Uniform, Logistic).
  • Tamaño de la muestra (100, 10000, 1000000).

Incluyendo otros lenguajes

Celdas con HTML: Si necesitamos insertar código HTML en una celda, podemos usar el comando %%html al comienzo de la misma:

8.1.3 MathJax

8.1.3 MathJax

Celdas con «shell script»: Hay ocasiones en las que un código en shell script suele ser útil. Para incluirlo recurrimos al comando %%bash al principio de la celda:

8.1.3 MathJax

8.1.3 MathJax

 Celdas con perl: No hay que subestimar el poder del lenguaje de programación perl. Si fuera necesario, lo podemos incluir en una celda del «notebook» con %%perl al comienzo de la misma:

8.1.3 MathJax

Publicaciones Similares