Modulis NumPy nodrošina funkciju numpy.where() elementu atlasei, pamatojoties uz nosacījumu. Tas atgriež elementus, kas izvēlēti no a vai b atkarībā no stāvokļa.
pirmskaitļu programma java
Piemēram, ja visi argumenti -> nosacījums, a & b tiek nodoti numpy.where(), tad tas atgriezīs elementus, kas atlasīti no a & b atkarībā no nosacījuma iegūtajām vērtībām būtības masīvā.
Ja ir nodrošināts tikai nosacījums, šī funkcija ir funkcijas np.asarray (condition).nonzero() saīsinājums. Lai gan tieši priekšroka jādod nullei, jo tā darbojas pareizi apakšklasēs.
Sintakse:
numpy.where(condition[, x, y])
Parametri:
Šie ir šādi parametri funkcijā numpy.where():
nosacījums: array_like, bool
virknes konvertēšana uz int java
Ja šis parametrs ir iestatīts uz True, ienesīgums x pretējā gadījumā ienesīgums y.
x, y: masīva_līdzīgs:
Šis parametrs nosaka vērtības, no kurām izvēlēties. X, y un nosacījumam ir jābūt pārraidāmam noteiktā formā.
Atgriež:
Šī funkcija atgriež masīvu ar elementiem no x, kur nosacījums ir True, un elementiem no y citur.
1. piemērs: np.where()
import numpy as np a=np.arange(12) b=np.where(a<6,a,5*a) b < pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created an array 'a' using np.arange() function.</li> <li>We have declared the variable 'b' and assigned the returned value of np.where() function.</li> <li>We have passed the array 'a' in the function.</li> <li>Lastly, we tried to print the value of b.</li> </ul> <p>In the output, the values ranging from 0 to 5 remain the same as per the condition, and the other values have been multiplied with 5.</p> <p> <strong>Output:</strong> </p> <pre> array([ 0, 1, 2, 3, 4, 5, 30, 35, 40, 45, 50, 55]) </pre> <h3>Example 2: For multidimensional array</h3> <pre> import numpy as np a=np.arange(12) b=np.where([[True, False], [True, True]],[[1, 2], [3, 4]],[[9, 8], [7, 6]]) b </pre> <p> <strong>Output:</strong> </p> <pre> array([[1, 8], [3, 4]]) </pre> <h3>Example 3: Broadcasting x, y, and condition</h3> <pre> import numpy as np x, y = np.ogrid[:3, :4] a=np.where(x > y, x, 10 + y) a </pre> <p> <strong>Output:</strong> </p> <pre> array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]]) </pre> <p> <strong>In the above code</strong> </p> <ul> <li>We have imported numpy with alias name np.</li> <li>We have created an array 'a' using np.arange() function. </li> <li>We declared the variable 'b' and assigned the returned value of np.where() function.</li> <li>We have passed a multidimensional array of boolean as a condition and x and y as an integer arrays.</li> <li>Lastly, we tried to print the value of b.</li> </ul> <p>In the output, the x value has been compared to y value if it satisfied the condition, then it will be printed x value otherwise, it will print y value, which has passed as an argument in the where() function.</p> <h3>Example 4: Broadcasting specific value</h3> <pre> x=np.array([[0,1,2],[0,2,5],[0,4,8]]) y=np.where(x<4,x,-2) y < pre> <p> <strong>Output:</strong> </p> <pre> array([[ 0, 1, 2], [ 0, 2, -2], [ 0, -2, -2]]) </pre> <hr></4,x,-2)></pre></6,a,5*a)>
2. piemērs: daudzdimensiju masīvam
import numpy as np a=np.arange(12) b=np.where([[True, False], [True, True]],[[1, 2], [3, 4]],[[9, 8], [7, 6]]) b
Izvade:
array([[1, 8], [3, 4]])
3. piemērs: apraide x, y un nosacījums
import numpy as np x, y = np.ogrid[:3, :4] a=np.where(x > y, x, 10 + y) a
Izvade:
python drukā līdz 2 zīmēm aiz komata
array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]])
Iepriekš minētajā kodā
- Mēs esam importējuši numpy ar aizstājvārdu np.
- Mēs esam izveidojuši masīvu 'a', izmantojot funkciju np.arange().
- Mēs deklarējām mainīgo 'b' un piešķīrām funkcijas np.where() atgriezto vērtību.
- Mēs esam izturējuši daudzdimensiju Būla masīvu kā nosacījumu un x un y kā veselu skaitļu masīvus.
- Visbeidzot, mēs mēģinājām izdrukāt b vērtību.
Izvadā x vērtība ir salīdzināta ar y vērtību, ja tā izpildīja nosacījumu, tad tiks izdrukāta x vērtība pretējā gadījumā, tiks izdrukāta y vērtība, kas ir nodota kā arguments funkcijā where().
4. piemērs. Apraides specifiskā vērtība
x=np.array([[0,1,2],[0,2,5],[0,4,8]]) y=np.where(x<4,x,-2) y < pre> <p> <strong>Output:</strong> </p> <pre> array([[ 0, 1, 2], [ 0, 2, -2], [ 0, -2, -2]]) </pre> <hr></4,x,-2)>
4,x,-2)>6,a,5*a)>