Números imaginários em NumPy Arrays

Manav Narula 30 janeiro 2023
  1. Use a classe numpy.complex para armazenar números imaginários em NumPy Arrays
  2. Use o parâmetro dtype para armazenar números imaginários em NumPy Arrays
Números imaginários em NumPy Arrays

Em Python, podemos trabalhar com números reais e também com números imaginários.

Para representar um número complexo, simplesmente adicionamos j no final. Por exemplo, a seguinte string representa um número imaginário.

a = 5 + 2j
print(a, type(a))

Resultado:

(5+2j) <class 'complex'>

Neste tutorial, aprenderemos como lidar com números imaginários em NumPy Arrays.

Conforme discutido anteriormente, podemos simplesmente criar um número complexo adicionando j. Podemos transmitir esse literal para um array usando diferentes funções como numpy.array(), numpy.arange() e muito mais. Veja o código abaixo para vários exemplos de números complexos em NumPy Arrays.

arr_1 = 1j * np.arange(5)
arr_2 = np.array([2 + 1j, 3 + 4j, 5 + 2j])
print(arr_1)
print(arr_2)

Resultado:

[0.+0.j 0.+1.j 0.+2.j 0.+3.j 0.+4.j]
[2.+1.j 3.+4.j 5.+2.j]

Use a classe numpy.complex para armazenar números imaginários em NumPy Arrays

Outro método de criação de objetos complexos é usando a classe complex fornecida pelo módulo numpy. Isso retorna um objeto complexo que novamente pode ser armazenado em arrays, conforme discutido no método anterior.

Por exemplo,

a = np.complex(1 + 1j)
c = a * np.arange(5)
print(c)

Resultado:

[0.+0.j 1.+1.j 2.+2.j 3.+3.j 4.+4.j]

Use o parâmetro dtype para armazenar números imaginários em NumPy Arrays

Outro método de iniciar números imaginários em matrizes é especificando o parâmetro dtype em algumas funções de NumPy Arrays. Como sabemos, podemos usar as funções numpy.zeros() e numpy.ones() para criar matrizes de 0s e 1s, respectivamente. Aqui podemos especificar o parâmetro dtype como complexo para obter um array resultante com valores complexos.

O código a seguir explica isso.

z = np.ones(4, dtype=complex) * 2
print(z)

Resultado:

[2.+0.j 2.+0.j 2.+0.j 2.+0.j]
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