Pesquisa de matriz NumPy

Neste artigo, exploraremos como a pesquisa de matriz NumPy funciona para valores ou elementos específicos e realizaremos várias operações relacionadas à pesquisa.



Matrizes de pesquisa

A pesquisa de matriz Numpy verifica uma matriz e exibe os índices que correspondem a um valor específico.

Invoque o método where() para encontrar uma matriz.

Você pode localizar os índices onde o valor é 20499 da seguinte forma:

Example: 

1
2
3
4
5
6
7
import numpy as npy
id_arr = npy.array([19847, 19399, 20478, 21561, 18212, 20499, 20504, 21061])
mrx = npy.where(id_arr == 20499)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Como resultado do exemplo acima, uma tupla será exibida: (array([5]),) Portanto, o índice 5 contém o valor 20499.

Identifique o índice de cube_arr que contém os dados 27:

Example: 

1
2
3
4
5
6
7
import numpy as npy
cube_arr = npy.array([1, 8, 27, 64, 125, 216])
mrx = npy.where(cube_arr == 27)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

A seguinte tupla será gerada como resultado do exemplo acima: (array([2]),)
Assim, o índice 2 contém o valor 27.

Você precisa identificar os índices odd_arr array onde os números são ímpares:

Example: 

1
2
3
4
5
6
7
import numpy as npy
odd_arr = npy.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
mrx = npy.where(odd_arr%2 != 0)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pesquisa de matriz NumPy

Pesquise por números perfeitamente divisíveis por quatro:

Example: 

1
2
3
4
5
6
7
import numpy as npy
divisible_arr = npy.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
mrx = npy.where(divisible_arr%4 == 1)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Confira os índices do array even_arr que possuem números pares:

Example: 

1
2
3
4
5
6
7
import numpy as npy
even_arr = npy.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
mrx = npy.where(even_arr%2 == 0)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Procure números que sejam completamente divisíveis pelo número ímpar 7:

Example: 

1
2
3
4
5
6
7
import numpy as npy
divisible_arr = npy.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
mrx = npy.where(divisible_arr%7 == 1)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pesquisa de matriz NumPy classificada

O método searchsorted() no Numpy realiza uma busca binária em um array e retorna o índice onde será adicionado o valor buscado.

Espera-se que arrays com itens classificados sejam recuperados por meio do método searchsorted() .

Determine a localização da matriz gap_arr onde o número 40 deve ser colocado:

Example: 

1
2
3
4
5
6
7
import numpy as npy
gap_arr = npy.array([10, 20, 30, 40, 50, 60, 70])
mrx = npy.searchsorted(gap_arr, 40)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Explicação do exemplo acima: Para manter a ordem de classificação, o número 40 deve ser colocado no índice 3.

De acordo com a pesquisa de matriz Numpy, o método inicia a pesquisa da esquerda e exibe o primeiro índice em que 40 não é maior que o próximo valor.

Onde o número 3.7 deve ser posicionado no array point_arr:

Example: 

1
2
3
4
5
6
7
import numpy as npy
point_arr = npy.array([2.8, 3.7, 3.9, 4.2, 4.5, 6.9, 7])
mrx = npy.searchsorted(point_arr, 3.7)
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Explicação do exemplo acima: O número 3.7 deve ser posicionado no índice 1 para manter a ordem de classificação.

A pesquisa de array Numpy começa da esquerda e mostra o primeiro índice onde 3,7 não é maior que o valor depois dele.

Pesquisar do lado direito

Podemos definir side='right' para recuperar o índice mais à direita em vez do índice mais à esquerda por padrão.

Começando pela direita, localize os índices onde o valor 50 deve ser adicionado:

Example: 

1
2
3
4
5
6
7
8
import numpy as npy
gap_arr = npy.array([10, 20, 30, 40, 50, 60, 70])
mrx = npy.searchsorted(gap_arr, 50, side='right')
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Explicação do exemplo acima: Para manter a ordem de classificação, adicione 50 no índice 5.

A pesquisa de matriz Numpy inicia a consulta da direita e encontra o primeiro índice em que 50 não é mais menor que o próximo valor.

Identifique os índices onde 4.5 deve ser colocado começando pela direita:

Example: 

1
2
3
4
5
6
7
import numpy as npy
point_arr = npy.array([2.8, 3.7, 3.9, 4.2, 4.5, 6.9, 7])
mrx = npy.searchsorted(point_arr, 4.5, side='right')
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

No índice 5, insira 4.2 para continuar a ordem da sequência .

Da direita para a esquerda, a pesquisa de matriz Numpy localiza o primeiro índice em que 4,2 não é menor que 4,3.


Valores Múltiplos

Uma matriz com vários valores pode ser utilizada para procurar mais de um valor.

Os números 8 e 10 devem ser colocados nos seguintes índices:

Example: 

1
2
3
4
5
6
7
import numpy as npy
odd_arr = npy.array([1, 3, 5, 7, 9, 11])
mrx = npy.searchsorted(odd_arr, [8, 10])
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Explicação : O código acima gera um array [4 5] com as duas posições onde 8 e 10 seriam colocados no array original para mantê-lo classificado.

A seguir estão os locais onde 4.1, 4.3 e 6.3 devem ser adicionados:

Example: 

1
2
3
4
5
6
7
import numpy as npy
point_arr = npy.array([2.8, 3.7, 3.9, 4.2, 4.5, 6.9, 7])
mrx = npy.searchsorted(point_arr, [4.1, 4.3, 6.3])
print(mrx)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Explicação : Para classificação, o código acima imprime uma matriz [3 4 5] com as três posições onde a matriz inicial colocaria 4.1, 4.3 e 6.3.

 

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone