Números imaginarios en matrices NumPy

Manav Narula 30 enero 2023
  1. Utilice la clase numpy.complex para almacenar números imaginarios en arrays de NumPy
  2. Utilice el parámetro dtype para almacenar números imaginarios en matrices NumPy
Números imaginarios en matrices NumPy

En Python, podemos trabajar tanto con números reales como con números imaginarios.

Para representar un número complejo, simplemente agregamos j al final. Por ejemplo, la siguiente cadena representa un número imaginario.

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

Producción :

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

En este tutorial, aprenderemos cómo lidiar con números imaginarios en arrays de numpy.

Como se discutió anteriormente, simplemente podemos crear un número complejo agregando j. Podemos transmitir este literal a un array usando diferentes funciones como numpy.array(), numpy.arange() y más. Consulte el código a continuación para ver varios ejemplos de números complejos en arrays de numpy.

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

Producción :

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

Utilice la clase numpy.complex para almacenar números imaginarios en arrays de NumPy

Otro método para crear objetos complejos es utilizar la clase complex proporcionada por el módulo numpy. Esto devuelve un objeto complejo que nuevamente se puede almacenar en arrays como se discutió en el método anterior.

Por ejemplo,

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

Producción :

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

Utilice el parámetro dtype para almacenar números imaginarios en matrices NumPy

Otro método para iniciar números imaginarios en arrays es especificando el parámetro dtype en algunas funciones de array de numpy. Como sabemos, podemos usar las funciones numpy.zeros() y numpy.ones() para crear arrays de 0 y 1, respectivamente. Aquí podemos especificar el parámetro dtype como complex para obtener un array resultante con valores complejos.

El siguiente código explica esto.

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

Producción :

[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