Adição de vetor em NumPy

Manav Narula 30 janeiro 2023
  1. Use a função numpy.add() para realizar a adição de vetores no NumPy
  2. Use a função numpy.ndarray.__add__() para realizar a adição de vetores em NumPy
  3. Use o operador + para realizar a adição de vetores em NumPy
  4. O que fazer quando as duas matrizes não são do mesmo tamanho
Adição de vetor em NumPy

um array unidimensional de listas pode ser considerada um vetor. Em Python, usamos o módulo numpy para realizar diferentes operações em matrizes.

Neste tutorial, discutiremos como realizar a adição de vetores em Python.

Quando dizemos adição de vetor, o que significa é que adicionaremos duas matrizes. As matrizes precisam ter o mesmo comprimento em todos os métodos discutidos abaixo; caso contrário, um ValueError é gerado.

Use a função numpy.add() para realizar a adição de vetores no NumPy

A função add() do módulo numpy pode ser usada para adicionar dois arrays. Ele executa a adição sobre matrizes que têm o mesmo tamanho, com elementos em todas as posições correspondentes sendo somados.

Por exemplo,

import numpy as np

arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])

s = np.add(arr1, arr2)
print(s)

Resultado:

[4 4 4]

Use a função numpy.ndarray.__add__() para realizar a adição de vetores em NumPy

A função numpy.ndarray.__add__() é usada para adicionar algum valor a cada elemento do array. Podemos usá-lo para realizar a adição de vetores, passando o segundo array para esta função.

Por exemplo,

import numpy as np

arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])

s = arr1.__add__(arr2)
print(s)

Resultado:

[4 4 4]

Use o operador + para realizar a adição de vetores em NumPy

Podemos eliminar o uso de qualquer função simplesmente usando o operador aritmético + para calcular a soma de duas matrizes.

Por exemplo,

import numpy as np

arr1 = np.array([3, 2, 1])
arr2 = np.array([1, 2, 3])

s = arr1 + arr2
print(s)

Resultado:

[4 4 4]

O que fazer quando as duas matrizes não são do mesmo tamanho

Foi discutido anteriormente que todos os métodos acima retornarão ValueError se as matrizes não forem do mesmo tamanho. Para tais situações, podemos preencher o array menor com 0s manualmente ou usar a função numpy.pad() para realizar a adição normalmente ou criar nossa própria função para realizar a adição.

Veja o código abaixo.

import numpy as np

a = np.array([3, 2, 1])
b = np.array([1, 2])


def unequal_add(a, b):
    if len(a) < len(b):
        c = b.copy()
        c[: len(a)] += a
    else:
        c = a.copy()
        c[: len(b)] += b
    return c


print(unequal_add(a, b))

Resultado:

[4 4 1]

O que fazemos é copiar o array mais longo e adicionar os elementos do array menor ao array mais longo. Este método consumirá muita memória.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn