Algoritmos espaciais cipiais

Algoritmos espaciais cipiais

As linguagens de programação de alto nível são construídas principalmente em estruturas de dados e módulos orientados a objetos. A estrutura de programação orientada a objetos facilita muito para os desenvolvedores escrever os códigos otimizados, simples e estruturados. Dados espaciais ou algoritmos também são uma forma de estrutura de dados que representa os dados em um espaço geométrico. Os algoritmos espaciais são muito usados ​​para calcular as triangulações e os cascos convexos de um conjunto de pontos. Esses algoritmos também são usados ​​para calcular a distância entre várias matrizes e fornecer as implementações de Kdtree para consultas de ponto vizinho mais próximo. Este guia foi projetado para explorar os algoritmos espaciais scipy para entender como gerenciar os dados no espaço geométrico.

O que são dados espaciais?

Os dados thae representados em um espaço geométrico, como pontos em um sistema de coordenadas, são comumente conhecidos como dados espaciais. Muitas tarefas podem ser executadas ao lidar com dados espaciais no sistema de coordenadas. O Scipy é uma das bibliotecas incríveis do Python, que é comumente usada para funções matemáticas e estatísticas e oferece o Scipy.pacote espacial. É frequentemente usado para dados e algoritmos espaciais. Como discutimos, os algoritmos espaciais são usados ​​para realizar triangulação, implementação de Kdtree para as consultas de ponto vizinho mais próximo, diagrama de voronoi, etc. Então, vamos explicar cada cálculo com a ajuda de exemplos.

Exemplo 1:

Neste exemplo, explicaremos como realizar a triangulação com o ccepy.pacote espacial. Considere este exemplo e saiba como o algoritmo espacial funciona para calcular a triangulação de Delaunay. Consulte o código de amostra no seguinte snippet de código:

importar numpy como np
importar matplotlib.pyplot como plt
de Scipy.Importação espacial Delaunay
Arrays = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
Simpls = Delaunay (matrizes).simplificadores
plt.Triplot (Matrizes [:, 0], Matrizes [:, 1], Simpls)
plt.dispersão (matrizes [:, 0], matrizes [:, 1], color = 'g')
plt.mostrar()

O programa começa com a importação da biblioteca Numpy como NP e Matplotlib.pacote pyplot como pLT. Então, o círculo.O pacote espacial é importado como o Delaunay. Depois de importar todos os pacotes do programa, uma matriz é declarada e armazenada na variável "Array". Depois de definir os pontos de matriz, a variável "Matriz" é passada para a função de Delaunay para calcular os simplórios. Para plotar os pontos de dados, as funções triplotas e espalhadas são usadas. Para exibir os pontos plotados, o PLT.Show () Função é usada. Agora, vamos ver qual gráfico para a triangulação de Delaunay é produzido pelo Scipy.espacial.Função Delaunay. Veja a seguinte saída:

Exemplo 2:

Outra tarefa que pode ser executada pelo Scipy. A função espacial é encontrar o casco convexo dos pontos definidos. Os pontos dados que fazem o menor polígono são conhecidos como cascos convexos. Para fazer os cascos convexos, Python fornece a função Convexhull () do Scipy.pacote espacial. Neste exemplo, escreveremos o código que incorpora a função Convexhull () para ajudá -lo a entender como você pode usar essa função em seu programa de acordo com suas necessidades. Considere o código de amostra no snippet de código a seguir:

importar numpy como np
importar matplotlib.pyplot como plt
de Scipy.Importação espacial Convexhull
Arrays = np.Array ([[3, 4], [0, 2],
[1, 4], [2, 0],
[3, 2], [4, 3]])
ch = Convexhull (matrizes)
CHP = CH.simplificadores
plt.dispersão (matrizes [:, 0], matrizes [:, 1])
Para simplex no CHP:
plt.plot (matrizes [simplex, 0], matrizes [simplex, 1], 'k-')
plt.mostrar()

Primeiro, importamos a biblioteca Numpy como NP para o programa e Matplotlib.pacote pyplot como pLT. Nós também convertimos o círculo.Pacote espacial para importar o módulo Convexhull. Os pontos de matriz são declarados na variável "matriz" e passados ​​para a função Convexhull (). Depois disso, o módulo simplificador é chamado. Para plotar os pontos de matriz, a função Scatter () é chamada. Um loop "for" é usado para plotar cada ponto no espaço geométrico. Os pontos de plotagem são mostrados no espaço geométrico usando a função show (). Veja o seguinte gráfico plotado:

Exemplo 3:

A próxima função que é oferecida pelo círculo.Pacote espacial é a implementação do KDTREE para as consultas de ponto vizinho mais próximo. Agora, vamos escrever um programa que utiliza o método Kdtree do Scipy.Pacote espacial para encontrar o vizinho mais próximo no espaço geométrico fornecido.

de Scipy.importação espacial kdtree
PNTs = np.aleatório.Rand (50,3)
kdt = kdtree (PNTs)
res = kdt.Consulta ((2, 1, 5))
Imprimir (res)

Primeiro, chamamos o Scipy.Pacote espacial para importar o módulo Kdtree para o programa. Em seguida, definimos os pontos para o espaço geométrico. Aqui, usamos a função aleatória para obter os pontos do espaço geométrico e passamos esses pontos para a função Kdtree () para encontrar o vizinho mais próximo no espaço geométrico fornecido. Agora, vamos ver qual resultado é produzido pela função kdtree. Veja o resultado na captura de tela a seguir:

Exemplo 4:

A próxima característica do círculo.pacote espacial que vamos explicar é pontos coplanares. Os pontos coplanares são os pontos que são plotados no mesmo avião. Eles podem ser pelo menos três ou mais três pontos. Agora, vamos escrever um programa que plote os pontos coplanares no espaço geométrico.

importar numpy como np
de Scipy.Importação espacial Delaunay
Arrays = np.Array ([[0, 0], [0, 0], [1, 1],
[1, 1], [0, 1], [1, 0],
]))
COP = Delaunay (matrizes)
Imprimir (policial.simplificadores)
print ('\ n')
Imprimir (policial.coplanar)

Novamente, as bibliotecas necessárias são importadas para o programa para execução. A primeira biblioteca é Numpy e a segunda biblioteca é centeada. O pacote Delaunay é importado para o programa para que a função coplanar possa ser usada. Os pontos de dados são declarados na matriz que é passada para a função Delaunay. Então, o módulo coplanar é chamado para obter os pontos coplanares do espaço geométrico. Os pontos coplanares são dados na captura de tela a seguir. Veja a saída no seguinte:

Exemplo 5:

O círculo.O pacote espacial também é usado para calcular as métricas de distância na distância euclidiana, ciência de dados etc. A matriz de distância refere -se não apenas à distância entre dois pontos, mas também se refere ao ângulo ou às etapas da unidade. O desempenho de vários algoritmos de aprendizado de máquina, como K-Means, K-Near mais vizinho, etc. depende muito do valor das matrizes de distância. Vamos calcular a métrica de distância com a função de distância euclidiana. Considere o seguinte código de amostra:

de Scipy.espacial.importação de distância euclidiana
ponto1 = (10, 5)
Point2 = (2, 6)
Matrix = Euclidiano (Point1, Point2)
Impressão (Matrix)

O módulo euclidiano é fornecido pelo Scipy.espacial.pacote de distância para que seja importado para o programa de acordo. Os dois pontos para encontrar as matrizes de distância são definidos nas variáveis ​​Point1 e Point2. Os pontos definidos são passados ​​para a função euclidiana e exibidos com o comando de impressão. Veja o seguinte valor da matriz de distância calculada:

Conclusão

Neste artigo, programamos os dados espaciais scipy com a assistência de alguns exemplos. Exploramos quais são os dados espaciais cipiais e como eles podem ser usados ​​em programas Python para obter os pontos de dados no espaço geométrico. Esses exemplos são muito fáceis de entender e ajudarão você a escrever seus códigos de estrutura de dados para o espaço geométrico. Pratique esses exemplos repetidamente para dominar a estrutura e algoritmos de dados espaciais.