English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Filtragem do Array do NumPy

Ferramentas online

Tutorial de NumPy

Filtragem de arrays

Na NumPy, usamos listas de índices booleanos para filtrar arrays.

Uma lista de índices booleanos é uma lista de valores booleanos correspondentes aos índices do array. Truese o valor for Falsese o valor for

usando os índices 0 e 2,4 criando um array com os elementos:

import numpy as np
arr = np.array([61, 62, 63, 64, 65]
x = [True, False, True, False, True]
newarr = arr[x]
print(newarr)

Resultados da Execução:

[61 63 65]

O exemplo a seguir retornará [61, 63, 65]porque?

porque o novo filtro contém apenas valores do array de filtros True os valores, portanto, neste caso, os índices são 0 e 2,4.

criação de um array de filtros

No exemplo a seguir, criamos True e False Os valores são hardcodificados, mas o uso usual é criar um array de filtros com base em condições.

Crie um array que retorna apenas valores maiores que 62 do array de filtro dos valores:

import numpy as np
arr = np.array([61, 62, 63, 64, 65]
 # Criação de uma lista vazia
filter_arr = []
 # Iteração de cada elemento em arr
for element in arr:
  # Se o elemento for maior que 62defina o valor como True, caso contrário False:
  if element > 62:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Resultados da Execução:

[False, False, True, True, True]
[63 64 65]

Crie um array de filtro que retorna apenas os elementos pares do array original:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7]
 # Criação de uma lista vazia
filter_arr = []
 # Iteração de cada elemento em arr
for element in arr:
  # Se o elemento puder ser 2 divisível, defina o valor como True, caso contrário, defina como False
  if element % 2 == 0:
    filter_arr.append(True)
  else:
    filter_arr.append(False)
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Resultados da Execução:

[False, True, False, True, False, True, False]
[2 4 6]

Criação direta de um array de filtro

O exemplo é uma tarefa muito comum no NumPy, e o NumPy oferece boas soluções para o problema.

Podemos substituir diretamente o array no condicional em vez da variável iterable, ele funcionará conforme esperado.

Crie um array que retorna apenas valores maiores que 62 do array de filtro dos valores:

import numpy as np
arr = np.array([61, 62, 63, 64, 65]
filter_arr = arr > 62
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Resultados da Execução:

[False False True True True]
[63 64 65]

Crie um array de filtro que retorna apenas os elementos pares do array original:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7]
filter_arr = arr % 2 == 0
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)

Resultados da Execução:

[False True False True False True False]
[2 4 6]