El módulo NumPy proporciona una función numpy.where() para seleccionar elementos según una condición. Devuelve elementos elegidos entre aob según la condición.
variable de referencia en java
Por ejemplo, si todos los argumentos -> condición, a y b se pasan en numpy.where(), devolverá elementos seleccionados de a y b dependiendo de los valores de la matriz bool obtenidos por la condición.
Si solo se proporciona la condición, esta función es una abreviatura de la función np.asarray (condición).nonzero(). Aunque se debe preferir directamente un valor distinto de cero, ya que se comporta correctamente para las subclases.
Sintaxis:
numpy.where(condition[, x, y])
Parámetros:
Estos son los siguientes parámetros en la función numpy.where():
condición: array_like, bool
instanciando java
Si este parámetro se establece en Verdadero, genera x; de lo contrario, genera y.
x, y: tipo matriz:
Este parámetro define los valores entre los que elegir. Las condiciones x, y y deben poder transmitirse con alguna forma.
Devoluciones:
Esta función devuelve la matriz con elementos de x donde la condición es Verdadera y elementos de y en otros lugares.
Ejemplo 1: np.donde()
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)>
Ejemplo 2: para una matriz multidimensional
import numpy as np a=np.arange(12) b=np.where([[True, False], [True, True]],[[1, 2], [3, 4]],[[9, 8], [7, 6]]) b
Producción:
array([[1, 8], [3, 4]])
Ejemplo 3: Difusión de x, y y condición
import numpy as np x, y = np.ogrid[:3, :4] a=np.where(x > y, x, 10 + y) a
Producción:
ejemplos de autómatas dfa
array([[10, 11, 12, 13], [ 1, 11, 12, 13], [ 2, 2, 12, 13]])
En el código anterior
- Hemos importado numpy con nombre de alias np.
- Hemos creado una matriz 'a' usando la función np.arange().
- Declaramos la variable 'b' y asignamos el valor devuelto de la función np.where().
- Hemos pasado una matriz multidimensional de valores booleanos como condición y xey como matrices de números enteros.
- Por último, intentamos imprimir el valor de b.
En la salida, el valor de x se comparó con el valor de y si cumplía la condición; de lo contrario, se imprimirá el valor de x; de lo contrario, imprimirá el valor de y, que se pasó como argumento en la función where().
Ejemplo 4: Difusión de valor específico
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)>