Remover Elementos do Array em NumPy
-
Remova os elementos usando a função
numpy.delete() -
Remova os elementos usando a função
numpy.setdiff1d()
Neste artigo, aprenderemos sobre duas maneiras de remover elementos de um array NumPy.
Remova os elementos usando a função numpy.delete()
Consulte o código a seguir.
import numpy as np
myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)
Resultado:
[ 1 2 3 5 7 9 10]
No código acima, usamos a função delete() da biblioteca NumPy. A função delete() aceita três parâmetros, a saber, arr, obj e axis e produz um array NumPy. O arr é a matriz NumPy da qual desejamos excluir os elementos. obj é uma lista de números inteiros. Esses números representam os índices dos elementos que devem ser excluídos do array. Por último, o axis é um argumento opcional. axis refere-se ao eixo ao longo do qual os elementos direcionados pelo obj devem ser excluídos. Se um valor None for atribuído a este parâmetro, arr é achatado e a exclusão é realizada nesta matriz achatada.
Como de costume, se um índice que está fora da faixa de arr for fornecido para esse método, ele lançará uma exceção IndexError.
import numpy as np
myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7, 34]
modifiedArray = np.delete(myArray, indexes)
print(modifiedArray)
Resultado:
Traceback (most recent call last):
File "<string>", line 5, in <module>
File "<__array_function__ internals>", line 5, in delete
File "/path/to/library/numpy/lib/function_base.py", line 4480, in delete
keep[obj,] = False
IndexError: index 34 is out of bounds for axis 0 with size 10
Para saber mais sobre esta função, consulte a documentação oficial desta função aqui
Aqui estão mais dois exemplos de exclusão em um array NumPy multidimensional.
import numpy as np
myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], 1)
print(modifiedArray)
Resultado:
[[ 1 4 5]
[11 14 15]
[21 24 25]]
Use None como o valor para o parâmetro axis.
import numpy as np
myArray = np.array([[1, 2, 3, 4, 5], [11, 12, 13, 14, 15], [21, 22, 23, 24, 25]])
modifiedArray = np.delete(myArray, [1, 2], None)
print(modifiedArray)
Resultado:
[ 1 4 5 11 12 13 14 15 21 22 23 24 25]
Remova os elementos usando a função numpy.setdiff1d()
Desta vez, usaremos a função setdiff1d() de NumPy. Esta função aceita três parâmetros, ar1, ar2 e assume_unique. ar1 e ar2 são duas matrizes NumPy. E assume_unique é um argumento booleano opcional. Seu valor padrão é False. Quando for True, as duas matrizes de entrada são consideradas únicas e essa suposição pode acelerar o tempo de cálculo.
setdiff1d() retorna os valores únicos em ar1 que não estão em ar2.
Consulte o código a seguir.
import numpy as np
myArray = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
indexes = [3, 5, 7]
modifiedArray = np.setdiff1d(myArray, indexes)
print(modifiedArray)
Resultado:
[ 1 2 4 6 8 9 10]
Ao contrário de numpy.delete(), ambos os arrays são arrays NumPy com elementos reais neles, mas não índices.
Para saber mais sobre esta função, consulte a documentação oficial desta função aqui.
