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