9. Módulos

9. Módulos

9.1 Módulos

El código de un programa en Python puede reutilizarse en otro importándolo. Cualquier fichero con código de Python reutilizable se conoce como módulo o librería.

Los módulos suelen contener funciones reutilizables, pero también pueden definir variables con da­tos simples o compuestos (listas, diccionarios, etc), o cualquier otro código válido en Python.

Python permite importar un módulo completo o sólo algunas partes de él. Cuando se importa un módulo completo, el intérprete de Python ejecuta todo el código que contiene el módulo, mientras que si solose importan algunas partes del módulo, solo se ejecutarán esas partes.

9.1 Importación completa de módulos (import)
  • import M : Ejecuta el código que contiene M y crea una referencia a él, de manera que pueden invocarse un objeto o función f definida en él mediante la sintaxis M. f.
  • import M as N : Ejecuta el código que contiene M y crea una referencia a él con el nombre N, de manera que pueden invocarse un objeto o función f definida en él mediante la sintaxis N. f. Esta forma es similar a la anterior, pero se suele usar cuando el nombre del módulo es muy largo para utilizar un alias más corto.
9.1.2 Importación parcial de módulos (from import)
  • from M import f, g, … : Ejecuta el código que contiene M y crea referencias a los objetos f, g, …, de manera que pueden ser invocados por su nombre. De esta manera para invo­car cualquiera de estos objetos no hace falta precederlos por el nombre del módulo, basta con escribir su nombre.
  • from M import *: Ejecuta el código que contiene M y crea referencias a todos los objetos públicos (aquellos que no empiezan por el carácter _) definidos en el módulo, de manera que pueden ser invocados porsu nombre.

Cuando se importen módulos de esta manera hay que tener cuidado de que no haya coincidencias en los nombres de funciones, variables u otros objetos.

9. Módulos

9.1.3 Módulos de la librería estándar más importantes

Python viene con una biblioteca de módulos predefinidos que no necesitan instalarse. Algunos de los más utilizados son:

  • sys: Funciones y parámetros específicos del sistema operativo.
  • os: Interfaz con el sistema operativo.
  • path: Funciones de acceso a las rutas del sistema.
  • io: Funciones para manejo de flujos de datos y ficheros.
  • string: Funciones con cadenas de caracteres.
  • datetime: Funciones para fechas y tiempos.
  • math: Funciones y constantes matemáticas.
  • statistics: Funciones estadísticas.
  • random: Generación de números pseudo-aleatorios.
9.1.4 Otras librerías imprescindibles

Estas librerías no vienen en la distribución estándar de Python y necesitan instalarse. También puede optarse por la distribución Anaconda que incorpora la mayoría de estas librerías.

  • NumPy: Funciones matemáticas avanzadas y arrays.
  • SciPy: Más funciones matemáticas para aplicaciones científicas.
  • matplotlib: Análisis y representación gráfica de datos.
  • Pandas: Funciones para el manejo y análisis de estructuras de datos.
  • Request: Acceso a internet por http.
10. La librería datetime

Para manejar fechas en Python se suele utilizar la librería datetime que incorpora los tipos de datos date, time y datetime para representar fechas y funciones para manejarlas. Algunas de las opera­ciones más habituales que permite son:

  • Acceder a los distintos componentes de una fecha (año, mes, día, hora, minutos, segundos y microsegundos).
  • Convertir cadenas con formato de fecha en los tipos date, time o datetime.
  • Convertir fechas de los tipos date, time o datetime en cadenas formateadas de acuerdo a diferentes formatos de fechas.
  • Hacer aritmética de fechas (sumar o restar fechas).
  • Comparar fechas.
10.1 Los tipos de datos date, time y datetime
  • date(año, mes, dia) : Devuelve un objeto de tipo date que representa la fecha con el año, mes y dia indicados.
  • time(hora, minutos, segundos, microsegundos) : Devuelve un objeto de tipo time que representa un tiempo la hora, minutos, segundos y microsegundos indicados.
  • datetime(año, mes, dia, hora, minutos, segundos, microsegundos):Devuelve un objeto de tipo datetime que representa una fecha y hora con el año, mes, dia, hora, minutos, segundos y microsegundos indicados.

9. Módulos

10.2 Acceso a los componentes de una fecha
  • day. today() : Devuelve un objeto del tipo date la fecha del sistema en el momento en el que se ejecuta.
  • datetime.now(): Devuelve un objeto del tipo datetime con la fecha y la hora del sistema en el momento exacto en el que se ejecuta.
  • d.year : Devuelve el año de la fecha d, puede ser del tipo date o datetime.
  • d.month : Devuelve el mes de la fecha d, que puede ser del tipo date o datetime.
  • d.day : Devuelve el día de la fecha d, que puede ser del tipo date o datetime.
  • d.weekday() : Devuelve el día de la semana de la fecha d, que puede serpuede ser del tipo date o datetime.
  • t.hour : Devuelve las horas del tiempo t, que puede ser del tipo time o datetime.
  • t.hour : Devuelve los minutos del tiempo t, que puede ser del tipo time o datetime.
  • t.second : Devuelve los segundos del tiempo t, que puede ser del tipo time o datetime.
  • t.microsecond : Devuelve los microsegundos del tiempo t, que puede ser del tipo time o datetime.

9. Módulos

9. Módulos

19.3 Conversión de fechas en cadenas con diferentes formatos
  • d. strftime(formato) : Devuelve la cadena que resulta de transformar la fecha d con el for­mato indicado en la cadena formato. La cadena formato puede contener los siguientes mar­cadores de posición: %Y (año completo), %y (últimos dos dígitos del año), %m (mes en número), %B (mes en palabra), %d (día), %A (día de la semana), %a (día de la semana abrevidado), %H (hora en formato 24 horas), %I (hora en formato 12 horas), %M (minutos), %S (segundos), %p (AM o PM), %C (fecha y hora completas), %x (fecha completa), %X (hora completa).
10.4 Conversión de cadenas en fechas

d.strftime(formato) : Devuelve la cadena que resulta de transformar la fecha d con el formato indicado en la cadena formato. La cadena formato puede contener los siguientes marcadores de posición: %Y (año completo), %y (últimos dos dígitos del año), %m (mes en número), %B (mes en palabra), %d (día), %A (día de la semana), %a (día de la semana abrevidado), %H (hora en formato 24 horas), %I (hora en formato 12 horas), %M (minutos), %S (segundos), %p (AM o PM), %C (fecha y hora completas), %x (fecha completa), %X (hora completa).

9. Módulos

10.4 Conversión de cadenas en fechas

• strptime(s, formato) : Devuelve el objeto de tipo date, time o datetime que resulta de convertir la cadena s de acuerdo al formato indicado en la cadena formato. La cadena formato puede contener los siguientes marcadores de posición: %Y (año completo), %y (últimos dos dígitos del año), %m (mes en número), %B (mes en palabra), %d (día), %A (día de la semana), %a (día de la semana abrevidado), %H (hora en formato 24 horas), %I (hora en formato 12 horas), %M (minutos), %S (segundos), %p (AM o PM), %C (fecha y hora completas), %x (fecha completa), %X (hora completa).

9. Módulos

10.5 Aritmética de fechas

Para representar el tiempo transcurrido entre dos fechas se utiliza el tipo timedelta.

  • timedelta(dias, segundos, microsegundos) : Devuelve un objeto del tipo timedelta que representa un intervalo de tiempo con los di as, segundos y micorsegundos indicados.
  • di – d2 : Devuelve un objeto del tipo timedelta que representa el tiempo transcurrido entre las fechas di y d2 del tipo datetime.
  • d + delta : Devuelve la fecha del tipo datetime que resulta desumara lafecha d elintervalo de tiempo delta, donde delta es del tipo timedelta.

9. Módulos

11 La librería Numpy

NumPy es una librería de Python especializada en el cálculo numérico y el análisis de datos, especial­mente para un gran volumen de datos.

Incorpora una nueva clase de objetos llamados arrays que permite representar colecciones de datos de un mismo tipo en varias dimensiones, y funciones muy eficientes para su manipulación.

Logo librería numpy

11.1 La clase de objetos array

Un array es una estructura de datos de un mismo tipo organizada en forma de tabla o cuadrícula de distintas dimensiones.

Las dimensiones de un array también se conocen como ejes.

Arrays

11.2 Creación de arrays

Para crear un array se utiliza la siguiente función de NumPy
np.array(lista) : Crea un arraya partir de la lista o tupia lista y devuelve una referencia a él. El número de dimensiones del array dependerá de las listas o tuplas anidadas en lista:

  • Para una lista de valores se crea un array de una dimensión, también conocido como vector.
  • Para una lista de listas de valores se crea un array de dos dimensiones, también conocido como matriz.
  • Para una lista de listas de listas de valores se crea un array de tres dimensiones, también cono­cido como cubo.
  • Y así sucesivamente. No hay límite en el número de dimensiones del array más allá de la memo­ria disponible en el sistema.

Los elementos de la lista o tupla deben ser del mismo tipo.

9. Módulos

Otras funciones útiles que permiten generar arrays son:

np.empty(dimensiones) : Crea y devuelve una referencia a un array vacío con las dimensiones especificadas en la tupla dimensiones.

np.zeros (dimensiones) : Crea y devuelve una referencia aun array con las dimensiones especifi­cadas en la tupla dimensiones cuyos elementos son todos ceros.

np.ones (dimensiones) : Crea y devuelve una referencia a un array con las dimensiones especifica­das en la tupla dimensiones cuyos elementos son todos unos.

np.full (dimensiones, valor) : Crea y devuelve una referencia a un array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son todos valor.

np.identity(n) : Crea y devuelve una referencia a la matriz identidad de dimensión n.

np.arange(inicio, fin, salto) : Crea y devuelve una referencia a un array de una dimensión cuyos elementos son la secuencia desde inicio hasta fin tomando valores cada salto.

np.linspace(inicio, fin, n) : Crea y devuelve una referencia a un array de una dimensión cu­yos elementos son la secuencia de n valores equidistantes desde inicio hasta fin.

np.random. random(dimensiones) : Crea y devuelve una referencia a un array con las dimensiones especificadas en la tupla dimensiones cuyos elementos son aleatorios.

9. Módulos

11.3 Atributos de un array

Existen varios atributos y funciones que describen las características de un array.

a.ndi : Devuelve el número de dimensiones del array a.

a.shape : Devuelve una tupla con las dimensiones del array a.

a.size : Devuelve el número de elementos del array a.

a.dtype: Devuelve el tipo de datos de los elementos del array a.

11.4 Acceso a los elementos de un array

Para acceder a los elementos contenidos en un array se usan índices al igual que para acceder a los elementos de una lista, pero indicando los índices de cada dimensión separados por comas.

Al igual que para listas, los índices de cada dimensión comienzn en 0.

También es posible obtener subarrays con el operador dos puntos : indicando el índice inicial y el siguiente al final para cada dimensión, de nuevo separados por comas.

9. Módulos

9. Módulos

11.5 Filtrado de elementos de un array

Una característica muy útil de los arrays es que es muy fácil obtener otro array con los elementos que cumplen una condición.

a[condicion] : Devuelve una lista con los elementos del array a que cumplen la condición condición.

9. Módulos

11.6 Operaciones matemáticas con arrays

Existen dos formas de realizar operaciones matemáticas con arrays: a nivel de elemento y a nivel de array.

Las operaciones a nivel de elemento operan los elementos que ocupan la misma posición en dos arrays. Se necesitan, por tanto, dos arrays con las mismas dimensiones y el resultado es una array de la misma dimensión.

Los operadores mamemáticos +, -, *, /, %, ** se utilizan para la realizar suma, resta, producto, cocien­te, resto y potencia a nivel de elemento.

9. Módulos

11,7 Operaciones matemáticas a nivel de array

Para realizar el producto matricial se utiliza el método

a.dot(b) : Devuelve el array resultado del producto matricial de los arrays a y b siempre y cuando sus dimensiones sean compatibles.

Y para trasponer una matriz se utiliza el método

a.T : Devuelve el array resultado de trasponer el array a.

9. Módulos

Publicaciones Similares