typestar

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

  1. cdist da cada distancia por pares entre dos conjuntos.
  2. KDTree responde consultas de vecino más cercano en tiempo logarítmico.
  3. ConvexHull devuelve los vértices del polígono envolvente.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 4 en Dispersas y espaciales; paso 21 de 23 en Computación científica con SciPy.

← Anterior Siguiente →