Sintaksa:
numpy.gdje (uvjet, [x, y])pri čemu funkcija () može uzeti dva argumenta. Prvi je argument obvezan, a drugi argument nije obvezan. Ako je vrijednost prvog argumenta (stanje) je true, tada će izlaz sadržavati elemente niza iz niza, x inače iz niza, g. Ova će funkcija vratiti vrijednosti indeksa ulaznog polja ako se ne koristi neobavezni argument.
Upotreba funkcije where ():
Različite vrste logičkih operatora mogu se koristiti za definiranje stanja ove funkcije. U ovom dijelu vodiča prikazane su upotrebe funkcije where () s više uvjeta.
Primjer -1: Upotreba više uvjeta s logičkim ILI
Sljedeći primjer prikazuje upotrebu funkcije where () sa i bez fakultativnog argumenta. Ovdje se logički OR koristio za definiranje uvjeta. Prva funkcija where () primijenjena je u jednodimenzionalnom nizu koji će vratiti niz indeksa ulaznog niza gdje će se vratiti uvjet Pravi. Druga funkcija where () primijenjena u dva jednodimenzionalna niza dohvatit će vrijednosti iz prvog polja kada će uvjet vratiti True. Inače će dohvatiti vrijednosti iz drugog polja.
# Uvezi NumPy bibliotekuuvoz numpy kao np
# Stvorite niz pomoću popisa
np_array1 = np.niz ([23, 11, 45, 43, 60, 18, 33, 71, 52, 38])
print ("Vrijednosti ulaznog polja: \ n", np_array1)
# Stvorite drugi niz na temelju više uvjeta i jednog polja
novi_ niz1 = np.gdje ((np_array1 50))
# Ispišite novi niz
print ("Filtrirane vrijednosti polja: \ n", new_array1)
# Stvorite niz pomoću vrijednosti raspona
np_array2 = np.narančasto (40, 50)
# Stvorite još jedan niz na temelju više uvjeta i dva polja
novi_ niz2 = np.gdje ((np_array1 60), np_array1, np_array2)
# Ispišite novi niz
print ("Filtrirane vrijednosti polja: \ n", new_array2)
Izlaz:
Sljedeći će se izlaz pojaviti nakon izvršavanja gornje skripte. Evo, stanje se vratilo Pravi za vrijednosti 23,11,18,33 i 38 prvog niza. Stanje se vratilo Lažno za vrijednosti 45, 43, 60, 71 i 52. Dakle, 42, 43, 44 i 48 dodane su iz drugog polja za vrijednosti 45, 43, 60 i 52. Ovdje je 71 izvan dosega.
Primjer -2: Upotreba više uvjeta s logičkim I
Sljedeći primjer pokazuje kako se funkcija () može koristiti s više uvjeta definiranih logičkim i primijeniti u dva jednodimenzionalna niza. Ovdje su izrađena dva jednodimenzionalna niza NumPy pomoću funkcije rand (). Ti se nizovi koriste u funkciji where () s više uvjeta za stvaranje novog niza na temelju uvjeta. Stanje će se vratiti Pravi kada je vrijednost prvog polja manja od 40, a vrijednost drugog niza veća od 60. Novi niz ispisan je kasnije.
# Uvezi NumPy bibliotekuuvoz numpy kao np
# Stvorite dva polja slučajnih vrijednosti
np_array1 = np.slučajno.rand (10) * 100
np_array2 = np.slučajno.rand (10) * 100
# Ispišite vrijednosti polja
print ("\ nVrijednosti prvog polja: \ n", np_array1)
print ("\ nVrijednosti drugog polja: \ n", np_array2)
# Stvorite novi niz na temelju uvjeta
novi_ niz = np.gdje ((np_array1 60), np_array1, np_array2)
# Ispišite novi niz
print ("\ nFiltrirane vrijednosti oba polja: \ n", novi_ niz)
Izlaz:
Sljedeći će se izlaz pojaviti nakon izvršavanja gornje skripte. Stanje se vratilo Lažno za sve elemente. Dakle, vraćeni niz sadrži vrijednosti samo iz drugog polja.
Primjer-3: Upotreba višestrukih uvjeta u višedimenzionalnom nizu
Sljedeći primjer pokazuje kako se funkcija () može koristiti s više uvjeta definiranih logičkim I koji će se primijeniti u dva višedimenzionalna niza. Ovdje su pomoću popisa stvorena dva višedimenzionalna niza. Dalje, ove su funkcije primijenjene u funkciji where () za stvaranje novog niza na temelju uvjeta. Vratit će se uvjet korišten u funkciji Pravi gdje je vrijednost prvog polja parna, a vrijednost drugog niza je neparna; u suprotnom, stanje će se vratiti Lažno.
# Uvezi NumPy knjižnicuuvoz numpy kao np
# Stvorite dva višedimenzionalna niza cjelobrojnih vrijednosti
np_array1 = np.niz ([[5, 12, 21, 6, 11], [6, 10, 15, 31, 8]])
np_array2 = np.niz ([[43, 19, 7, 34, 9], [99, 22, 41, 5, 12]])
# Ispišite vrijednosti polja
print ("\ nVrijednosti prvog polja: \ n", np_array1)
print ("\ nVrijednosti drugog polja: \ n", np_array2)
# Stvorite novi niz od dva niza na temelju uvjeta
novi_ niz = np.gdje je (((np_array1% 2 == 0) & (np_array2% 2 == 1)), np_array1, np_array2)
# Ispišite novi niz
print ("\ nFiltrirane vrijednosti oba polja: \ n", novi_ niz)
Izlaz:
Sljedeći će se izlaz pojaviti nakon izvršavanja gornje skripte. U izlaz su 43, 12, 7, 34, 9, 22, 41, 5 i 12 dodali novi niz iz drugog niza jer je uvjet Lažno za ove vrijednosti. Prvih 12 vrijednosti u novom nizu dodano je iz prvog polja jer je uvjet Pravi samo za ovu vrijednost.
Zaključak:
pri čemu je funkcija () funkcije knjižnice NumPy korisna za filtriranje vrijednosti iz dva polja. Stvaranje novog polja filtriranjem podataka iz dva polja na temelju više uvjeta definiranih logičkim ILI i logičkim I objašnjeno je u ovom vodiču. Nadam se da će čitatelji moći pravilno koristiti ovu funkciju u svojoj skripti nakon vježbanja primjera ovog vodiča.