lunes, 30 de mayo de 2016

Python versus Octave encuentros en la primera fase


Hace no demasiado tiempo me bajé un manual de Python , gentileza del Instituto de Astrofísica de Andalucia), ese lenguaje tan de moda que aparece donde menos te lo esperas, y lo usa por lo visto hasta el gato.

No voy a entrar en detalles sobre la historia del lenguaje, ni sobre sus bondades o defectos si alguien siente curiosidad os dejo estos enlaces:

Lo que más me interesó de este lenguaje de propósito general, era la gran cantidad de librerias externas de ámbito cientifico-técnico que tiene, de entre todas me interesó una agrupación de ellas, denominada Anaconda, (otra nombre de serpiente), el listado de paquetes os los dejo en este enlace https://docs.continuum.io/anaconda/pkg-docs.

Pues nada me bajé Anaconda para 64 bits,  y como  necesitaba un IDE, lo más funcional posible y no demasiado pesado, me puse a buscar.

Existen algunos muy ligeros como Spider, que recuerda a MatLab ¿casualidad?,  seguí mirando y encontré Pycharm Community,  más pesado pero con más prestaciones, la verdad es que me gustó.

Lo instalé despues de Anaconda, configuré la localización del interprete de Python (eso me llevó poco tiempo), y ya estaba listo para ..... empollarme el manual de Python y la documentación sobre los paquetes de Anaconda que más me interesaban, entre ellos nos centramos en tres:
Además del que Python implementa por defecto que es :

Empezamos por el paquete Pyplot, y vamos a realizar algunas pruebas comparando los resultados con Octave. ????
 
Vamos a realizar algo sencillo, como  la representación gráfica de la función Seno entre los valores [-3Pi,3Pi], con incremento de 0.1, el código en Octave es :

% graficos del seno
x=-3*pi:0.1:3*pi;
y_sin=sin(x)
% formateo de los graficos
plot(x,y_sin,'b--')
xlabel(' Eje x')
ylabel(' Eje y')
title('Sin(x)')

Los resultados obtenidos son:


Y ahora nos vamos a Python, las primeras dudas del ignorante

 ¿ Python maneja operaciones de funciones matematicas tomando vectores como argumento , al igual que hace MatLab ??, pues efectivamente, con la librería Numpy.

 Y con la sublibrería pyplot de la libreria Matplotlib podemos graficar.

El código queda:



import numpy  # importamos la libreria matematica numpy
import matplotlib.pyplot as plt  # importamos la libreria grafica le ponemos el alias plt
# definimos los vectores
n_pi=numpy.pi  # valor de pi
x=numpy.arange(-3*n_pi,3*n_pi,0.1) # limites de la grafica
y=numpy.sin(x)

# graficamos
plt.plot(x,y,'b--')
plt.xlabel('Eje X')
plt.ylabel('Eje Y')
plt.title('Grafica del Seno')
plt.show()


el resultado es :


En cuanto a código se refiere, en Python hay que importar librerías, cosa que no es necesaria en Octave/MatLab para este tipo de acciones, pero esto no es relevante.

Lo que si me gusta de Python, bueno de la librería matplotlib.pyplot, es que defines todos los parámetros y después graficas con show(), esto parece que da cierto orden.

En lo que respecta al código, son muy similares, y sus resultados también.

Decantarse por uno, pues no hay criterio firme , en proximos post seguiremos comparando.
 





No hay comentarios:

Publicar un comentario