Numeri immaginari in array NumPy

Manav Narula 30 gennaio 2023
  1. Usa la classe numpy.complex per memorizzare numeri immaginari negli array NumPy
  2. Usa il parametro dtype per memorizzare i numeri immaginari negli array NumPy
Numeri immaginari in array NumPy

In Python, possiamo lavorare con numeri reali e numeri immaginari.

Per rappresentare un numero complesso, aggiungiamo semplicemente j alla fine. Ad esempio, la stringa seguente rappresenta un numero immaginario.

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

Produzione:

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

In questo tutorial impareremo come gestire i numeri immaginari negli array numpy.

Come discusso in precedenza, possiamo semplicemente creare un numero complesso aggiungendo j. Possiamo trasmettere questo letterale a un array utilizzando diverse funzioni come numpy.array(), numpy.arange() e altre. Vedere il codice seguente per vari esempi di numeri complessi negli array numpy.

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

Produzione:

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

Usa la classe numpy.complex per memorizzare numeri immaginari negli array NumPy

Un altro metodo per creare oggetti complessi è usare la classe complex fornita dal modulo numpy. Ciò restituisce un oggetto complesso che può essere nuovamente memorizzato in array come discusso nel metodo precedente.

Per esempio,

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

Produzione:

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

Usa il parametro dtype per memorizzare i numeri immaginari negli array NumPy

Un altro metodo per avviare numeri immaginari negli array è specificare il parametro dtype in alcune funzioni di array numpy. Come sappiamo, possiamo usare le funzioni numpy.zeros() e numpy.ones() per creare array di 0 e 1, rispettivamente. Qui possiamo specificare il parametro dtype come complex per ottenere un array risultante con valori complessi.

Il codice seguente lo spiega.

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

Produzione:

[2.+0.j 2.+0.j 2.+0.j 2.+0.j]
Autore: Manav Narula
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