Remover Elementos do Array em NumPy

Vaibhav Vaibhav 10 outubro 2023
  1. Remova os elementos usando a função numpy.delete()
  2. Remova os elementos usando a função numpy.setdiff1d()
Remover Elementos do Array em NumPy

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.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.