<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Método explicito con Cython
La idea es experimentar que tiempos podemos obtener usando cython.
Para arrancar, vamos a usar como base la implementación en python puro, y simplemente la vamos a compilar.
Step1:  Copiamos la implementación de python en un archivo separado que termina en .pyx y lo compilamos usando el scrip setup.py haciendo
Step2:  Notar que solo obtuvimos 8 segundo menos.
<ASSISTANT_TASK:>
Python Code:
%matplotlib inline
from trasferencia_calor import solve_explicit, pretty_plot
import time
a = time.time()
t_out, dic = solve_explicit(metodo='explicit_py')
print('Explicito python puro demoro ',time.time() - a, 'segundos')
pretty_plot(t_out, dic)
Explanation: Método explicito con Cython
La idea es experimentar que tiempos podemos obtener usando cython.
Para arrancar, vamos a usar como base la implementación en python puro, y simplemente la vamos a compilar.
End of explanation
a = time.time()
t_out, dic = solve_explicit(metodo='explicit_cython')
print('Explicito cython demoro ',time.time() - a, 'segundos')
pretty_plot(t_out, dic)
Explanation: Copiamos la implementación de python en un archivo separado que termina en .pyx y lo compilamos usando el scrip setup.py haciendo:  
$ python setup.py build_ext --inplace
End of explanation
%matplotlib inline
from trasferencia_calor import solve_explicit, pretty_plot
import time
a = time.time()
t_out, dic = solve_explicit(dz=40, metodo='explicit_cython3')
time.time() - a
a = time.time()
t_out, dic = solve_explicit(dz=40, metodo='explicit_cython2')
time.time() - a
a = time.time()
t_out, dic = solve_explicit(dz=40, metodo='explicit_numba')
time.time() - a
pretty_plot(t_out, dic)
Explanation: Notar que solo obtuvimos 8 segundo menos.
End of explanation
<END_TASK>