2.0 Concepto, Interprete pip, Modulos y Librerias de Python

Unidad 2
Python
Es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible.

Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.

Pycharm



PyCharm es un entorno de desarrollo integrado (IDE) utilizado en la programación de computadoras, específicamente para el lenguaje Python . Es desarrollado por la compañía checa JetBrains. Proporciona análisis de código, un depurador gráfico, un probador de unidades integrado, integración con sistemas de control de versiones (VCS) y admite el desarrollo web con Django.

PyCharm es multiplataforma, con versiones Windows, macOS y Linux. La Edición de la Comunidad se publica bajo la Licencia de Apache, y también hay una Edición Profesional lanzada bajo una licencia propietaria, esto tiene características adicionales.

 Interprete pip de python


PiP es una herramienta escrita en Python para facilitar la descarga e instalación de paquetes del lenguaje que se encuentren en el Python Package Index (PyPI). Podría suponerse que las siglas provienen de Python Install Package, aunque no hay certeza de esto. Corre en las principales plataformas: Microsoft Windows, Linux y OS X.


Muchos paquetes pueden ser encontrados en el Python Package Index (PyPI). Python 2.7.9 y posteriores (en la serie Python2), Python 3.4 y posteriores incluyen pip (pip3 para Python3) por defecto.



Una ventaja importante de pip es la facilidad de su interfaz de línea de comandos, el cual permite instalar paquetes de software de Python fácilmente desde solo una orden:

pip install nombre-paquete

Los usuarios también pueden fácilmente desinstalar algún paquete:


pip uninstall nombre-paquete


Otra característica particular de pip es que permite gestionar listas de paquetes y sus números de versión correspondientes a través de un archivo de requisitos. Esto nos permite una recreación eficaz de un conjunto de paquetes en un entorno separado (p. ej. otro ordenador) o entorno virtual. Esto se puede conseguir con un archivo correctamente formateado requisitos.txt y la siguiente orden:


pip install -r requisitos.txt

Con pip es posible instalar un paquete para una versión concreta de Python, sólo es necesario reemplazar ${versión} por la versión de Python que queramos: 2, 3, 3.4, etc:


pip${versión} install nombre-paquete

Nota: Debido a que la versión de Python que anteriormente se instalo fue la versión 2.7.13, el administrador de paquetes de Python(PiP), ya ha sido instalado, por lo que se procederá a verificar que versión de PiP ha sido instalada.

Es necesario acceder al símbolo del sistema (cmd), y gracias a que anteriormente se declaro la variable global para Python, solo es necesario escribir la siguiente linea de código: python -m pip -V



Instalación de pip

Las siguientes instrucciones deberían funcionar en Windows 7, Windows 8.1 y Windows 10:
  1. Descargue el script del instalador get-pip.py. Si estás en Python 3.2, necesitarás esta versión de get-pip.py. De cualquier manera, haga clic derecho en el enlace y seleccione Guardar como y guárdelo en cualquier carpeta del pc, como su carpeta de Descargas.
  2. Abra el símbolo del sistema y navegue hasta el archivo get-pip.py.
  3. Ejecute el siguiente comando: python get-pip.py


Modulos y librerias de python



Podemos importar nuevos módulos de la librería estándar de Python o de terceros con import <modulo>, pero hay varias maneras de hacerlo:
In [10]: import math          # importa el módulo math
In [11]: import math as M     # importa el módulo math llamándolo M
In [12]: from math import sin, cos, pi  # importa las funciones sin, cos y  pi de math
In [13]: from math import *   # importa todas las funciones de math
De manera similar podemos crear un módulo propio que puede usarse como un programa independiente o importase como un módulo y poder reutilizar sus funciones:
#!/usr/bin/python3
#-*- coding: utf-8 -*-

"""Programa de calculo del cubo de un numero"""

__author__ = "Jorge"
__copyright__ = "Curso de Python"
__credits__ = ["Pepe", "José Luis", "Roberto"]
__license__ = "GPL"
__version__ = "1.0"
__email__ = "japp@denebola.org"
__status__ = "Development"


def cubo(x):
    """Calcula el cubo de un numero"""
    y = x**3
    return y

if __name__ == "__main__":
    x = int( input("Dame un numero: ") )
    y = cubo(x)
    print("El cubo de %.2f es %.2f" % (x, y))
Bien, ahora podemos usar este programa como un ejecutable como ya hemos hecho o importarlo como un módulo y usar la función cubo(). La primera de comentario multilínea, limitada por comillas triples, se asiga automáticamente a la variable mágica doc como la documentación del módulo o programa y el resto de variables especiales como información adicional. Igualmente la primera línea de def() es la documentación de la función. La variable especial name es el nombre del módulo cuando se usa como tal, que en este caso vale cubo, pero tiene valor «main» cuando se ejecuta como un programa. De esta manera distinguimos cuando el código se está ejecutando como un programa o está siendo llamado como un módulo.
import cubo

In [20]: cubo.__doc__
Out[20]: 'Programa de calculo del cubo de un numero'

In [21]: cubo.cubo(3)
Out[21]: 27

In [22]: cubo.cubo.__doc__
Out[22]: 'Calcula el cubo de un numero'

In [23]: cubo.__version__
Out[23]: '1.0'
Para poder importar un módulo nuestro, debe estar en el directorio donde lo estamos llamando, o bien estar en una ruta incluida en el PATH de la librería o bien en la variable PYTHONPATH.
$ echo $PYTHONPATH
:/home/japp/codigo/lib/:/usr/local/aspylib/:/usr/local/lib/python2.7/dist-packages/
Alternativamente, se puede incluir el PATH en el programa ejecutable añadiéndolo a la lista sys.path:
import sys
sys.path.append('/home/japp/mis_modulos/')
En Windows, funciona de forma idéntica pero usando las rutas de Windows:
sys.path.append('C:\mis_modulos')
Para modificar de forma temporal el PYTHONPATH en Windows haríamos:
C:\>set PATH=C:\Program Files\Python 3.6;%PATH%
C:\>set PYTHONPATH=%PYTHONPATH%;C:\mis_modulos
C:\>python

Si se quiere añadir permanentemente es algo más complicado. Desde el botón de inicio hay que buscar Propiedades del sistema (System properties) -> Advanced system settings y pinchar en el botón de variables de entorno, donde se pueden modificar la variables de entorno del sistema (solo el administrador).

Modulo Tkinter

Tkinter es un binding de la biblioteca gráfica Tcl/Tk para el lenguaje de programación Python, con estos queremos decir que Tk se encuentra disponible para varios lenguajes de programación entre los cuales se encuentra Python con el nombre de Tkinter. Este no es mas que una adaptación de esta librería para el lenguaje Python con lo cual usar Tk en otro lenguaje no nos supondrá un inconveniente.
Se considera un estándar para la interfaz gráfica de usuario (GUI) para Python y es el que viene por defecto con la instalación para Microsoft Windows y preinstalado en la mayoría de las distribuciones de GNU/Linux. Con Tkinter podremos conseguir resultados casi tan buenos como con otras librerías gráficas siempre teniendo en cuenta que quizás con otras herramientas podamos realizar trabajos mas complejos donde necesitemos una plataforma mas robusta, pero como herramienta didáctica e interfaces sencillas nos sobrara, dándonos una perspectiva de lo que se trata el desarrollo de una parte muy importante de una aplicación si deseamos distribuirla. Gracias a Tkinter veremos como interactuar con el usuario pidiéndole el ingreso de datos, capturando la pulsación de teclas, movimientos del mouse, entre algunas de las cosas que podremos lograr.
Ejemplo:

Lo primero que hacemos para usar Tkinter es agregar el modulo: from Tkinter import *



Para la creacion de la ventana principal usamos la funcion “ventana = Tk()” que es atribuida a una variable en este caso ventana, la cual heredara todas funciones de Tkinter , para inicializar la ventana usamos “ventana.mainloop()” y con esto nuestra ventana sera lanzada.
Codigo:
&gt;&gt;&gt; import Tkinter                                                                                                        &gt;&gt;&gt; root = Tkinter.Tk()                                                                                                  &gt;&gt;&gt; etiqueta = Tkinter.Label(root, text="Codigo Python")                                            &gt;&gt;&gt; etiqueta.pack()                                                                                                      &gt;&gt;&gt; root.mainloop() 
Y así es como quedara nuestro ejemplo terminado:





Modulo Turtle
¿Qué es Python Turtle Graphics?


Python Turtle Graphics es un módulo de programación gráfica para Python utilizado como método para enseñar programación a través de coordenadas relativas. El objeto a programar recibe el nombre de tortuga, elemento clave en el lenguaje de programación Logo, creado por Seymour Papert a finales de la década de los 60.

Python Turtle Graphics

A la tortuga es un objeto al cual se le puede dar órdenes de movimiento (avance, retroceso, giro, etc). Moviendo adecuadamente la tortuga se puede conseguir dibujar todo tipo de figuras. La tortuga dispone de 3 atributos esenciales:

Posición: Respecto al centro de coordenadas.
Orientación: Dirección hacia donde mira la tortuga.
Pluma: Rastro que puede dejar la tortuga al desplazarse.

¿Qué medidas tiene el escenario?

El escenario donde se dibujan las figuras tiene un tamaño dinámico, es decir, se puede variar redimensionando la ventana. Sin embargo es importante recordar que el centro de coordenadas lo tenemos en el centro de la imagen. En este caso puedes ver como aparecen 4 cuadrantes y tendremos que calcular las posiciones de los mismos a la hora de dibujar figuras.

Escenario de Turtle Graphics


¿Qué es la Programación Orientada a Objetos?

Python es un lenguaje que soporta el paradigma de Programación Orientada a Objetos. Con este paradigma, los objetos son entidades con un determinado estado o comportamiento, y pueden ser manipualdos en tiempo de ejecución invocando a los métodos del objeto.

Dicho de otra forma, supongamos que tenemos una tortuga a la cual le damos diferentes órdenes (avance, retroceso, giro, etc). El objeto sería la tortuga, y los métodos de la tortuga son las órdenes.

POO con Turtle Graphics


Librerías para Graficacion

1.- matplotlib
Gráficos de áreas, histogramas, visualizaciones de líneas, barras, diagramas de dispersión… matplotlib es una de las librerías en Python más utilizadas en ciencia de datos. Gran parte de su éxito es la facilidad que da a los desarrolladores a la hora de diseñar visualizaciones con datos a partir de muy pocas líneas de código y que luego esos gráficos se puedan incluir en cualquier proyecto web.

Con matplotlib también se pueden hacer visualizaciones con mapas (en ese caso es necesario utilizar también Basemap) y en tres dimensiones (mplot3D, un kit de herramientas que añade funcionalidades de diseño en 3D a matplotlib, con la posibilidad de rotar la figura e incluso hacer zoom en la propia visualización). 



Como ejemplo de la enorme eficiencia en el uso del código para hacer visualizaciones con matplotlib, un gráfico de dispersión como ejemplo:


"""
Simple demo of a scatter plot.
"""
import numpy as np
import matplotlib.pyplot as plt

N = 50
x = np.random.rand(N)
y = np.random.rand(N)
colors = np.random.rand(N)
area = np.pi * (15 * np.random.rand(N))**2 # 0 to 15 point radiuses

plt.scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()


2.- Seaborn

Seaborn es una librería de visualización de datos en Python basada en matplotlib. La idea de Seaborn es que los científicos de datos dispongan de una interfaz para hacer gráficos estadísticos atractivos e explicativos: el objetivo es visualizar datos complejos de forma sencilla y extraer conclusiones. Sus características:

- Tiene varios temas integrados para mejorar el diseño de matplotlib.

- Dispone de herramientas para la elección de paletas de colores.

- Funciones para comparar subconjuntos de datos.

- Herramientas para adaptar y visualizar modelos de regresión lineal.

- Funciones para visualizar matrices de datos.

- Uso de algoritmos de clustering.

- Posibilidad de establecer series temporales estadísticas con los datos. 


3.- Bokeh

El objetivo de Bokeh es ofrecer gráficos elegantes, atractivos y sencillos, al estilo de la librería de JavaScript D3.js, pero también proporcionar una interactividad de alto nivel con grandes volúmenes de datos. Es una opción interesante si se quieren crear visualizaciones gráficas, aplicaciones con datos o tableros de mandos.

Con Bokeh se pueden hacer visualizaciones de todo tipo, enfocadas fundamentalmente para navegadores modernos: mapas de coropletas, mapas de calor, gráficos de líneas, de áreas, de barras… Existen muchas posibilidades distintas, en función de los datos y la visualización más apropiada en cada caso: 


Bokeh dispone de tutoriales para los desarrolladores o científicos de datos que quieran empezar a trabajar con la librería, desde ejercicios básicos hasta formación específica por cada tipo de gráfico o también formación más avanzada. 



4.- Pygal
Pygal se utiliza fundamentalmente para la creación de gráficos en formato SVG, algo habitual para la creación de visualizaciones interactivas para proyectos digitales. También permite descargar las gráficas en formato de imagen, concretamente en .png, pero deben instalarse las dependencias que lo permiten.

Se pueden hacer visualizaciones de todo tipo: gráficos de barras, de líneas, de tarta, gráficos de embudo y también todo tipo de visualizaciones con mapas. 





5.- Plotly
Plotly es una herramienta algo distinta a las demás: es una librería online para el análisis y la visualización de datos. Dispone de una documentación muy completa, con tutoriales muy accesibles, no solo para hacer todo tipo de gráficos a partir de los diseños servidos por matplotlib, sino también directamente con la API.

La API permite manejar datos para hacer gráficas que luego se pueden descargar en formato de imagen o bien embeber en una web mediante un código. Para instalar la API en Python se puede usar pip. Cualquier usuario que necesite trabajar con la API deberá seguir los pasos de la documentación.

Algunas de sus características:

- El usuario puede importar a Plotly datos desde Google Drive, Dropbox o servicios de gestión de bases de datos como MySQL, PostgreSQL, Spark SQL u Oracle para hacer visualizaciones. Se pueden descargar datos a Excel.

Cada uno de los gráficos se pueden exportar en formatos .png, PDF, SVG y EPS, escogiendo las medidas de ancho y alto de la visualización.

- Podemos hacer todo tipo de visualizaciones con Plotly: desde gráficos de barras hasta de líneas, de áreas, histogramas, burbujas, mapas de calor…

- La mayoría de los gráficos dispone de un acceso abierto para los usuarios de Plotly. Cualquier usuario que se registre dispondrá de almacenamiento ilimitado para sus visualizaciones públicas. Eso permite que el resto de usuarios del servicio puedan hacer comparaciones y utilizar los gráficos existentes como ejemplo para adaptar su datos a esas visualizaciones. 

- La versión gratuita también permite alojar visualizaciones de carácter privado, pero aquí sí existen limitaciones de espacio. Esta opción impide que el resto de usuarios puedan acceder a los datos privados de un gráfico.

Comentarios