Mikä on np.where Pythonissa?
Voit käyttää toimintoa np.where() NumPy-taulukoiden käsittelyyn Pythonissa. Sen vektoroidut operaatiot tekevät siitä tehokkaamman kuin silmukkapohjaiset menetelmät.
Mitä np.where tekee?
Python-funktio np.where() on NumPy-kirjaston tehokas menetelmä, jota käytetään elementtien valitsemiseen taulukosta. Se tunnistaa ja poimii elementit, jotka täyttävät tietyn ehdon, ja palauttaa sitten kyseistä ehtoa vastaavat indeksit tai arvot.
Tätä funktiota käytetään monilla aloilla, kuten tietojenkäsittelyssä, tieteellisissä laskelmissa, koneoppimisessa ja data-analyysissä. Datan käsittelyn yhteydessä np.where() mahdollistaa datan suodattamisen ja arvojen korvaamisen taulukoissa.
Mikä on np.where-funktion syntaksi Pythonissa?
np.where() ottaa vastaan NumPy-tyyppisen taulukon, joka koostuu esimerkiksi kokonaisluvuista tai boolenaisista arvoista. Sen syntaksi on seuraavanlainen:
import numpy as np
np.where(condition[, x, y])pythoncondition: Tämä on ehto, jota sovelletaan taulukkoon sen määrittämiseksi, mitkä elementit valitaan.xjay(valinnainen): Jos määritätxjay,xn arvot palautetaan, kun ehto täyttyy. Muussa tapauksessa palautetaanyn arvot. Jos et määritäxjay,np.where()palauttaa indeksit, jotka täyttävät ehdon.
Suorituksen jälkeen np.where() palauttaa uuden NumPy-taulukon. Uusi taulukko on tulos alkuperäisen taulukon suodattamisesta tai elementtien valitsemisesta ehdon perusteella.
Esimerkkejä np.where-funktion käytöstä
np.where() menetelmä on monipuolinen työkalu ehtojen soveltamiseen taulukoihin ja erittäin hyödyllinen tietojen käsittelyssä. Seuraavassa tarkastelemme muutamia esimerkkejä sen käytöstä.
Korvaa elementit NumPy-taulukossa
NumPy:n funktio np.where() mahdollistaa taulukon elementtien korvaamisen tietyn ehdon perusteella. Ennen kuin aloitat, voit muuttaa Python-listat taulukoiksi käyttämällä np.array().
import numpy as np
arr = np.array([1, 2, 3, 4, 5])pythonNyt kun meillä on taulukko, haluamme määritellä ehdon, jolla tunnistetaan elementit, jotka ovat suurempia kuin 3. Voimme tehdä tämän ehdolla, joka on True elementeille, jotka ovat suurempia kuin 3, ja muutoin epätosi:
condition = arr > 3pythonSeuraavaksi käytämme np.where() ja syötämme tämän ehdon. Määritämme myös, että ehdon täyttävät arvot korvataan arvolla -1 ja kaikki muut arvot korvataan arvolla 0.
new_arr = np.where(condition, -1, 0)pythonTuloksena oleva new_arr sisältää ehdon perusteella muokatun taulukon. Tuloksessa arvot, jotka ovat suurempia kuin 3, korvataan arvolla -1. Kaikki muut arvot korvataan arvolla 0.
print(new_arr)
# Output: [0 0 0 -1 -1]pythonKäytä np.where-funktiota yhdellä ehdolla
Jos käytät np.where() vain yhdellä ehdolla ja ilman korvaavia arvoja, se palauttaa indeksien tuple, joille ehto on totta.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
condition = arr > 2
result = np.where(condition)
print(result)
# Output: (array([2, 3, 4]),)pythonTässä esimerkissä arr on NumPy-taulukko, joka sisältää arvot 1–5. condition = arr > 2 luo boolen maskin, joka tunnistaa elementit arr ssa, jotka ovat suurempia kuin 2. np.where(condition) suoritetaan ilman korvaavia arvoja, ja tuloksena palautetaan tuple indekseistä, jotka täyttävät ehdon arr > 2. Tuloksena on taulukko indekseistä, joiden elementit ovat suurempia kuin 2.
Lähetys np.where:llä
NumPy-kirjastossa lähetys mahdollistaa eri muotoisten taulukoiden käsittelyn, kunhan tietyt ehdot täyttyvät. Kun taulukot ovat eri muotoisia, NumPy yrittää suurentaa niitä, jotta ne ovat yhteensopivia.
Oletetaan, että meillä on NumPy-taulukko arr, jonka muoto on (3, 3):
import numpy as np
arr = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])pythonJa meillä on toinen NumPy-taulukko row, jonka muoto on (3,):
row = np.array([10, 11, 12])pythonKahden taulukon muodot eivät täysin vastaa toisiaan, mutta lähetystoimintoa voidaan käyttää niiden välisten operaatioiden mahdollistamiseen. Jos esimerkiksi haluaisimme lisätä kunkin rivin arvot arr arvoihin row, lähetystoiminto mahdollistaisi sen.
result = arr + row
print(result)
# Output: [[11 13 15]
[14 16 18]
[17 19 21]]pythonYllä olevassa esimerkissä yksiulotteinen taulukko row laajennettiin (3, 3) matriisiksi vastaamaan muodon arr muotoa. Sitten elementit arr ja row laskettiin yhteen elementti elementiltä.