Consultas espaciales en Python
Distancias, vecinos más cercanos y envolventes sobre conjuntos de puntos.
import numpy as np
from scipy import spatial
puntos = np.array([[0.0, 0.0], [1.0, 0.5], [3.0, 3.0], [4.0, 0.5]])
consulta = np.array([[1.2, 0.6]])
print(spatial.distance.cdist(consulta, puntos).round(3))
print(round(spatial.distance.euclidean(puntos[0], puntos[2]), 4))
arbol = spatial.KDTree(puntos)
distancia, indice = arbol.query(consulta, k=2)
print(distancia.round(3), indice)
casco = spatial.ConvexHull(puntos)
print(sorted(casco.vertices.tolist()), round(casco.volume, 2))
Cómo funciona
cdistda cada distancia por pares entre dos conjuntos.KDTreeresponde consultas de vecino más cercano en tiempo logarítmico.ConvexHulldevuelve los vértices del polígono envolvente.
Palabras clave y builtins usados aquí
asprintroundsorted
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 483
- Tokens
- 159
- Ritmo de tres estrellas
- 110 tpm
Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 87 segundos.
Paso 3 de 4 en Dispersas y espaciales; paso 21 de 23 en Computación científica con SciPy.