logo

numpy.where() u Pythonu

NumPy modul pruža funkciju numpy.where() za odabir elemenata na temelju uvjeta. Vraća elemente odabrane od a ili b ovisno o uvjetu.

Na primjer, ako su svi argumenti -> uvjet, a & b proslijeđeni u numpy.where(), tada će vratiti elemente odabrane iz a & b ovisno o vrijednostima u nizu bool koje daje uvjet.

Ako je naveden samo uvjet, ova je funkcija skraćenica za funkciju np.asarray (uvjet).nonzero(). Iako bi vrijednost koja nije nula trebala biti preferirana izravno, jer se ponaša ispravno za podklase.

while i do while petlja u Javi

Sintaksa:

 numpy.where(condition[, x, y]) 

Parametri:

Ovo su sljedeći parametri u funkciji numpy.where():

uvjet: array_like, bool

stvaranje niza nizova u Javi

Ako je ovaj parametar postavljen na True, daje x, inače daje y.

x, y: array_like:

Ovaj parametar definira vrijednosti između kojih se bira. X, y i uvjet moraju biti emitirani u neki oblik.

Povratak:

Ova funkcija vraća niz s elementima iz x gdje je uvjet True i elemente iz y na drugom mjestu.

što je grupiranje

Primjer 1: 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 &apos;a&apos; using np.arange() function.</li> <li>We have declared the variable &apos;b&apos; and assigned the returned value of np.where() function.</li> <li>We have passed the array &apos;a&apos; 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 &gt; 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 &apos;a&apos; using np.arange() function. </li> <li>We declared the variable &apos;b&apos; 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)>

Primjer 2: Za višedimenzionalni niz

 import numpy as np a=np.arange(12) b=np.where([[True, False], [True, True]],[[1, 2], [3, 4]],[[9, 8], [7, 6]]) b 

Izlaz:

 array([[1, 8], [3, 4]]) 

Primjer 3: Emitiranje x, y i uvjeta

 import numpy as np x, y = np.ogrid[:3, :4] a=np.where(x &gt; y, x, 10 + y) a 

Izlaz:

 array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]]) 

U gornjem kodu

  • Uvezli smo numpy s alias imenom np.
  • Stvorili smo niz 'a' pomoću funkcije np.arange().
  • Deklarirali smo varijablu 'b' i dodijelili vraćenu vrijednost funkcije np.where().
  • Proslijedili smo višedimenzionalni niz booleovih kao uvjet i x i y kao nizove cijelih brojeva.
  • Na kraju, pokušali smo ispisati vrijednost b.

U izlazu, vrijednost x je uspoređena s vrijednošću y ako je zadovoljila uvjet, tada će biti ispisana vrijednost x, inače će se ispisati vrijednost y, koja je proslijeđena kao argument u funkciji where().

Primjer 4: Emitiranje specifične vrijednosti

 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)>