Técnicas de programación en Python: ejemplos con numpy y matplotlib

En este artículo, exploramos diversas técnicas de programación útiles en Python, centrándonos en ejemplos prácticos con biblioetcas comunes como numpy y matplotlib.

  1. Generación de números aleatorios con numpy

En Python 3, numpy ofrece métodos flexibles para generar números aleatorios. Por ejemplo, para obtener un valor aleatorio entre 0 y 1, se puede usar np.random.random(). Para crear una matriz con dimensiones específicas, como 2 filas y 3 columnas, se utiliza np.random.rand(2,3), donde los valores se distribuyen uniformemente en el rango [0, 1).

import numpy as np
# Valor aleatorio único
valor_aleatorio = np.random.random()
# Matriz aleatoria de 2x3
matriz_aleatoria = np.random.rand(2, 3)
print(valor_aleatorio)
print(matriz_aleatoria)
  1. Operaciones min y max en matrices

Al aplicar funciones como min o max a una matriz en numpy, el resultado es otra matriz. Para acceder a un valor escalar, es necesario indexar el elemento específico. Considere una matriz de ejemplo:

datos = np.array([[5, 15], [25, 35]])
min_segunda_columna = np.min(datos[:, 1])
print(min_segunda_columna)  # Salida: 15

En este caso, datos[:, 1] selecciona la segunda columna, y np.min devuelve el valor mínimo de esa columna.

  1. Uso de la función map en Python 3

En Python 3, la función map devuelve un iterador en lugar de una lista. Para obtener los elementos como una lista, se debe envolver con list(). Ejemplo aplicado a una lista de números:

numeros = [10, 20, 30]
dobles = map(lambda n: n * 2, numeros)
lista_dobles = list(dobles)
print(lista_dobles)  # Salida: [20, 40, 60]
  1. Conversión a listas con tolist()

El método tolist() en numpy permite convertir una matriz a una lista de listas, donde cada sublista representa una fila. Esto facilita la manipulación de datos en formtaos más nativos de Python:

matriz = np.array([[7, 8], [9, 10]])
lista_convertida = matriz.tolist()
print(lista_convertida)  # Salida: [[7, 8], [9, 10]]
fila_especifica = lista_convertida[0]
print(fila_especifica)  # Salida: [7, 8]
  1. Personalización de ejes con add_axes en matplotlib

En matplotlib, la función add_axes permite agregar regiones de ejes personalizadas a una figura. Los parámetros rect definen la posición y tamaño relativos al lienzo. Ejemplo con dos ejes superpuestos:

import matplotlib.pyplot as plt
fig = plt.figure()
# Primer eje en la esquina inferior izquierda
eje1 = fig.add_axes([0.1, 0.1, 0.4, 0.4])
eje1.plot([1, 2, 3, 4], [10, 20, 25, 30], 'g-')
eje1.set_xlabel('X')
eje1.set_ylabel('Y')
# Segundo eje superpuesto sin marcos
eje2 = fig.add_axes([0.5, 0.5, 0.3, 0.3], frameon=False)
eje2.plot([1, 2, 3, 4], [30, 25, 20, 10], 'm--')
eje2.set_title('Eje secundario')
plt.show()

Para eliminar las marcas de los ejes, se pueden usar diccionarios con listas vacías en los parámetros xticks y yticks al crear los ejes. Además, etiquetas únicas (label) son esenciales para identificar ejes en figuras complejas.

  1. Fórmula de distancia esférica

La distancia entre dos puntos en una esfera se calcula utilizando el teorema del coseno. La fórmula general es:

S = R · arccos[cosβ₁ cosβ₂ cos(α₁ - α₂) + sinβ₁ sinβ₂]

Donde:

  • R es el radio de la esfera.
  • β₁, β₂ son las latitudes de los puntos A y B.
  • α₁, α₂ son las longitudes de los puntos A y B.

Esta ecuación permite calcular la distnacia angular mínima, crucial en aplicaciones como geodesia o navegación.

Etiquetas: NumPy Matplotlib Python Map tolist

Publicado el 7-13 04:05