Numeri immaginari in array NumPy
-
Usa la classe
numpy.complex
per memorizzare numeri immaginari negli array NumPy -
Usa il parametro
dtype
per memorizzare i numeri immaginari negli 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]
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