Znanost o podacima

Kako koristiti python NumPy gdje () funkcionira s više uvjeta

Kako koristiti python NumPy gdje () funkcionira s više uvjeta
NumPy knjižnica ima mnogo funkcija za stvaranje niza u pythonu. gdje je funkcija () jedna od njih za stvaranje niza od drugog niza NumPy na temelju jednog ili više uvjeta. Neke operacije mogu se izvršiti u vrijeme stvaranja niza na temelju uvjeta pomoću ove funkcije. Također se može koristiti bez ikakvog uvjetnog izraza. Kako se ova funkcija može koristiti s više uvjeta u pythonu, prikazano je u ovom vodiču.

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 biblioteku
uvoz 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 biblioteku
uvoz 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žnicu
uvoz 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.

Zamijenite svoje tipke miša različito za različiti softver pomoću X-Mouse Button Control
Možda vam treba alat koji bi mogao promijeniti kontrolu miša sa svakom aplikacijom koju koristite. Ako je to slučaj, možete isprobati aplikaciju pod n...
Microsoft Sculpt Touch bežični miš pregled
Nedavno sam čitao o Microsoft Sculpt Touch bežični miš i odlučio ga kupiti. Nakon što sam ga neko vrijeme koristio, odlučio sam s njim podijeliti svoj...
Trackpad i pokazivač miša na ekranu AppyMouse za Windows tablete
Korisnicima tableta često nedostaje pokazivač miša, posebno kada su navični koristiti prijenosna računala. Pametni telefoni i tableti osjetljivi na do...