Algoritmos espaciales

Algoritmos espaciales

Los lenguajes de programación de alto nivel se basan principalmente en estructuras de datos y módulos orientados a objetos. La estructura de programación orientada a objetos hace que sea mucho más fácil para los desarrolladores escribir los códigos optimizados, simples y estructurados. Los datos o algoritmos espaciales también son una forma de estructura de datos que representa los datos en un espacio geométrico. Los algoritmos espaciales se usan muy comúnmente para calcular las triangulaciones y los cascos convexos de un conjunto de puntos. Estos algoritmos también se utilizan para calcular la distancia entre varias matrices y proporcionar las implementaciones de Kdtree para consultas de puntos vecinos más cercanos. Esta guía está diseñada para explorar los algoritmos espaciales Scipy para comprender cómo administrar los datos en el espacio geométrico.

¿Qué son los datos espaciales??

Los datos de THAE que se representan en un espacio geométrico, como puntos en un sistema de coordenadas, se conocen comúnmente como datos espaciales. Se pueden realizar muchas tareas cuando se trata de datos espaciales en el sistema de coordenadas. Scipy es una de las bibliotecas increíbles de Python que se usa comúnmente para funciones matemáticas y estadísticas y ofrece el Scipy.paquete espacial. Se usa con frecuencia para datos espaciales y algoritmos. Como discutimos, los algoritmos espaciales se utilizan para realizar la triangulación, la implementación de Kdtree para las consultas de puntos vecinos más cercanos, el diagrama de Voronoi, etc. Entonces, expliquemos cada cálculo con la ayuda de ejemplos.

Ejemplo 1:

En este ejemplo, explicaremos cómo realizar la triangulación con el Scipy.paquete espacial. Considere este ejemplo y aprenda cómo funciona el algoritmo espacial para calcular la triangulación de Delaunay. Consulte el código de muestra en el siguiente fragmento de código:

importar numpy como np
Importar matplotlib.Pyplot como PLT
De Scipy.Importación espacial Delaunay
matrices = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Simple = Delaunay (matrices).sencillo
PLT.Triplot (matrices [:, 0], matrices [:, 1], simples)
PLT.dispersión (matrices [:, 0], matrices [:, 1], color = 'g')
PLT.espectáculo()

El programa comienza con la importación de la biblioteca Numpy como NP y Matplotlib.paquete pyplot como plt. Entonces, el Scipy.El paquete espacial se importa como Delaunay. Después de importar todos los paquetes en el programa, se declara y almacena una matriz en la variable "matriz". Después de definir los puntos de matriz, la variable "matrices" se pasa a la función de Delaunay para calcular los simples simples. Para trazar los puntos de datos, se utilizan las funciones de triplot y dispersión. Para mostrar los puntos trazados, el PLT.Se utiliza la función show (). Ahora, veamos qué gráfico para la triangulación de Delaunay produce el Scipy.espacial.Función de Delaunay. Ver la siguiente salida:

Ejemplo 2:

Otra tarea que puede ser realizada por el Scipy. La función espacial es encontrar el casco convexo del conjunto de puntos. Los puntos dados que hacen el polígono más pequeño se conocen como cascos convexos. Para hacer los cascos convexos, Python proporciona la función convexhull () desde el scipy.paquete espacial. En este ejemplo, escribiremos el código que incorpora la función convexhull () para ayudarlo a comprender cómo puede usar esta función en su programa de acuerdo con sus necesidades. Considere el código de muestra en el siguiente fragmento de código:

importar numpy como np
Importar matplotlib.Pyplot como PLT
De Scipy.importación espacial convexhull
matrices = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
CH = convexhull (matrices)
CHP = CH.sencillo
PLT.dispersión (matrices [:, 0], matrices [:, 1])
para simplex en CHP:
PLT.Plot (matrices [simplex, 0], matrices [simplex, 1], 'k-')
PLT.espectáculo()

Primero, importamos la biblioteca Numpy como NP en el programa y Matplotlib.paquete pyplot como plt. También convertimos el SciPy.Paquete espacial para importar el módulo convexhull. Los puntos de matriz se declaran en la variable "matrices" y se pasan a la función convexhull (). Después de eso, se llama al módulo Simplices. Para trazar los puntos de matriz, se llama a la función de dispersión (). Se usa un bucle "para" para trazar cada punto en el espacio geométrico. Los puntos de trazado se muestran en el espacio geométrico utilizando la función show (). Vea el siguiente gráfico trazado:

Ejemplo 3:

La siguiente función que ofrece el Scipy.El paquete espacial es la implementación de Kdtree para las consultas de punto vecino más cercano. Ahora, escribamos un programa que utilice el método kdtree de la escasa.Paquete espacial para encontrar al vecino más cercano en el espacio geométrico dado.

De Scipy.importación espacial kdtree
PNTS = NP.aleatorio.Rand (50,3)
kdt = kdtree (pnts)
Res = KDT.consulta ((2, 1, 5))
Imprimir (Res)

Primero, llamamos al Scipy.Paquete espacial para importar el módulo kdtree en el programa. Luego, definimos los puntos para el espacio geométrico. Aquí, usamos la función aleatoria para obtener los puntos para el espacio geométrico y pasar esos puntos a la función kdtree () para encontrar el vecino más cercano en el espacio geométrico dado. Ahora, veamos qué resultado produce la función Kdtree. Consulte el resultado en la siguiente captura de pantalla:

Ejemplo 4:

La siguiente característica del scipy.Paquete espacial que vamos a explicar es Coplanar Points. Los puntos coplanar son los puntos que se trazan en el mismo avión. Pueden ser al menos tres o más tres puntos. Ahora, escribamos un programa que traza los puntos coplanares en el espacio geométrico.

importar numpy como np
De Scipy.Importación espacial Delaunay
matrices = np.Array ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
])
COP = Delaunay (matrices)
Imprimir (COP.simples)
Imprimir ('\ n')
Imprimir (COP.coplanar)

Nuevamente, las bibliotecas requeridas se importan al programa para su ejecución. La primera biblioteca es Numpy y la segunda biblioteca es Scipy. El paquete de Delaunay se importa al programa para que se pueda usar la función coplanar. Los puntos de datos se declaran en la matriz que se pasa a la función de Delaunay. Luego, se llama al módulo coplanar para obtener los puntos coplanar del espacio geométrico. Los puntos coplanar se dan en la siguiente captura de pantalla. Vea la salida de la siguiente manera:

Ejemplo 5:

El scipy.El paquete espacial también se utiliza para calcular las métricas de distancia en la distancia euclidiana, la ciencia de datos, etc. La matriz de distancia se refiere no solo a la distancia entre dos puntos, sino que también se refiere al ángulo o a los pasos de la unidad. El rendimiento de varios algoritmos de aprendizaje automático como K-means, K-Nearest Vecina, etc. Depende en gran medida del valor de las matrices de distancia. Calculemos la métrica de distancia con la función de distancia euclidiana. Considere el siguiente código de muestra:

De Scipy.espacial.Importación de distancia Euclidiana
punto1 = (10, 5)
punto2 = (2, 6)
matriz = euclidean (punto1, punto2)
Imprimir (matriz)

El módulo euclidiano es proporcionado por el scipy.espacial.Paquete de distancia, por lo que se importa al programa en consecuencia. Los dos puntos para encontrar las matrices de distancia se definen en las variables Point1 y Point2. Los puntos definidos se pasan a la función euclidiana y se muestran con el comando de impresión. Consulte el siguiente valor de matriz de distancia calculada:

Conclusión

En este artículo, programamos los datos espaciales Scipy con la ayuda de algunos ejemplos. Exploramos qué son los datos espaciales Scipy y cómo se puede usar en los programas de Python para obtener los puntos de datos en el espacio geométrico. Estos ejemplos son muy fáciles de entender y lo ayudarán a escribir sus códigos de estructura de datos para el espacio geométrico. Practique estos ejemplos repetidamente para dominar la estructura de datos espaciales y los algoritmos.