Datu zinātne

Kā izmantot pitonu NumPy where () ar vairākiem nosacījumiem

Kā izmantot pitonu NumPy where () ar vairākiem nosacījumiem
NumPy bibliotēkai ir daudz funkciju, lai izveidotu masīvu python. Funkcija where () ir viena no tām, lai izveidotu masīvu no cita NumPy masīva, pamatojoties uz vienu vai vairākiem nosacījumiem. Dažas darbības var veikt masīva izveides laikā, pamatojoties uz nosacījumu, izmantojot šo funkciju. To var izmantot arī bez nosacītas izteiksmes. Kā šo funkciju var izmantot ar vairākiem nosacījumiem pitonā, ir parādīts šajā apmācībā.

Sintakse:

numpy.kur (nosacījums, [x, y])

kur funkcijai () var būt divi argumenti. Pirmais arguments ir obligāts, un otrais arguments nav obligāts. Ja pirmā argumenta (stāvoklī) ir taisnība, tad izvadē būs masīva elementi no masīva, x citādi no masīva, y. Šī funkcija atgriezīs ievades masīva indeksu vērtības, ja netiek izmantots papildu arguments.

Funkcijas kur () izmantošana:

Lai definētu šīs funkcijas nosacījumu, var izmantot dažāda veida Būla operatorus. Šajā apmācības daļā tiek parādīti funkcijas () funkcijas ar vairākiem nosacījumiem izmantošanas veidi.

-1. Piemērs: vairāku nosacījumu izmantošana ar loģisku VAI

Šis piemērs parāda funkcijas where () izmantošanu ar izvēles argumentu un bez tā. Šeit nosacījuma definēšanai ir izmantots loģiskais OR. Pirmā funkcija, kur () ir izmantota viendimensiju masīvā, kas atgriezīs ievades masīva indeksu masīvu, kur atgriezīsies nosacījums Patiesi. Otrais, kur funkcija () ir lietota divos viendimensiju masīvos, iegūs vērtības no pirmā masīva, kad nosacījums atgriezīsies True. Pretējā gadījumā tas izgūs vērtības no otrā masīva.

# Importēt NumPy bibliotēku
importēt numpy kā np
# Izveidojiet masīvu, izmantojot sarakstu
np_array1 = np.masīvs ([23, 11, 45, 43, 60, 18, 33, 71, 52, 38])
print ("Ievades masīva vērtības: \ n", np_array1)
# Izveidojiet citu masīvu, pamatojoties uz vairākiem nosacījumiem un vienu masīvu
new_array1 = np.kur ((np_array1 50))
# Izdrukājiet jauno masīvu
print ("Masīva filtrētās vērtības: \ n", new_array1)
# Izveidojiet masīvu, izmantojot diapazona vērtības
np_array2 = np.aranžs (40, 50)
# Izveidojiet citu masīvu, pamatojoties uz vairākiem nosacījumiem un diviem masīviem
new_array2 = np.kur ((np_array1 60), np_array1, np_array2)
# Izdrukājiet jauno masīvu
print ("Masīva filtrētās vērtības: \ n", new_array2)

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja. Lūk, stāvoklis ir atgriezies Patiesi pirmā masīva vērtībām 23,11,18,33 un 38. Stāvoklis ir atgriezies Nepatiesa vērtībām 45, 43, 60, 71. un 52. Tātad no otrā masīva pievienotas 42, 43, 44 un 48 vērtībām 45, 43, 60 un 52. Šeit 71 ir ārpus diapazona.

-2. Piemērs: vairāku nosacījumu izmantošana ar loģisko UN

Šajā piemērā parādīts, kā funkciju () var izmantot ar vairākiem nosacījumiem, ko definē loģiski un var lietot divos viendimensiju masīvos. Šeit, izmantojot funkciju rand (), ir izveidoti divi viendimensiju NumPy masīvi. Šie masīvi ir izmantoti funkcijā kur () ar vairākiem nosacījumiem, lai izveidotu jaunu masīvu, pamatojoties uz nosacījumiem. Nosacījums atgriezīsies Patiesi kad pirmā masīva vērtība ir mazāka par 40 un otrā masīva vērtība ir lielāka par 60. Jaunais masīvs ir izdrukāts vēlāk.

# Importēt NumPy bibliotēku
importēt numpy kā np
# Izveidojiet divus nejaušo vērtību masīvus
np_array1 = np.nejaušs.rands (10) * 100
np_array2 = np.nejaušs.rands (10) * 100
# Izdrukājiet masīva vērtības
print ("\ nPirmā masīva vērtības: \ n", np_array1)
print ("\ nOtrā masīva vērtības: \ n", np_array2)
# Izveidojiet jaunu masīvu, pamatojoties uz nosacījumiem
new_array = np.kur ((np_array1 60), np_array1, np_array2)
# Izdrukājiet jauno masīvu
print ("\ n Abu filtru filtrētās vērtības: \ n", new_array)

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja. Stāvoklis ir atgriezies Nepatiesa visiem elementiem. Tātad atgrieztajā masīvā ir tikai otrā masīva vērtības.

3. piemērs: vairāku nosacījumu izmantošana daudzdimensiju masīvā

Šis piemērs parāda, kā funkciju () var izmantot ar vairākiem loģiski definētiem nosacījumiem UN ko izmantos divos daudzdimensionālos masīvos. Šeit, izmantojot sarakstus, ir izveidoti divi daudzdimensiju masīvi. Pēc tam šīs funkcijas ir izmantotas funkcijā where (), lai izveidotu jaunu masīvu, pamatojoties uz nosacījumu. Funkcijā izmantotais nosacījums atgriezīsies Patiesi kur pirmā masīva vērtība ir pāra un otrā masīva vērtība ir nepāra; pretējā gadījumā stāvoklis atgriezīsies Nepatiesa.

# Importēt NumPy bibliotēku
importēt numpy kā np
# Izveidojiet divus veselu skaitļu daudzdimensionālus masīvus
np_array1 = np.masīvs ([[5, 12, 21, 6, 11], [6, 10, 15, 31, 8]])
np_array2 = np.masīvs ([[43, 19, 7, 34, 9], [99, 22, 41, 5, 12]])
# Izdrukājiet masīva vērtības
print ("\ nPirmā masīva vērtības: \ n", np_array1)
drukāt ("\ nOtrā masīva vērtības: \ n", np_array2)
# Izveidojiet jaunu masīvu no diviem masīviem, pamatojoties uz nosacījumiem
new_array = np.kur ((((np_array1% 2 == 0) & (np_array2% 2 == 1)), np_array1, np_array2)
# Izdrukājiet jauno masīvu
drukāt ("\ n Abu filtru filtrētās vērtības: \ n", new_array)

Izeja:

Pēc iepriekš minētā skripta izpildes parādīsies šāda izeja. Izejā 43, 12, 7, 34, 9, 22, 41, 5 un 12 ir pievienojuši jauno masīvu no otrā masīva, jo nosacījums ir Nepatiesa šīm vērtībām. Pirmās 12 vērtības jaunajā masīvā ir pievienotas no pirmā masīva, jo nosacījums ir Patiesi tikai šai vērtībai.

Secinājums:

kur NumPy bibliotēkas funkcija () ir noderīga, lai filtrētu vērtības no diviem masīviem. Jauna masīva izveide, filtrējot datus no diviem masīviem, pamatojoties uz vairākiem nosacījumiem, kurus definē loģiski VAI un loģiski UN, ir paskaidrots šajā apmācībā. Es ceru, ka lasītāji pēc šīs apmācības piemēru izmantošanas varēs pareizi izmantot šo funkciju savā skriptā.

Komerciālo spēļu dzinēju atvērtā koda porti
Bezmaksas, atvērtā koda un starpplatformu spēļu dzinēju atpūtu var izmantot, lai spēlētu vecos, kā arī dažus no diezgan nesenajiem spēļu nosaukumiem. ...
Labākās komandrindas spēles Linux
Komandrinda nav tikai lielākais sabiedrotais, lietojot Linux, bet tā var būt arī izklaides avots, jo to var izmantot, lai spēlētu daudzas jautras spēl...
Labākās Linux spēļu gamepad kartēšanas lietotnes
Ja jums patīk spēlēt spēles Linux ar parastu tastatūru, nevis parasto tastatūru un peles ievades sistēmu, jums ir dažas noderīgas lietotnes. Daudzas d...