veces una repite repetidos que numero matrices lista funcion elementos cuantas contar arreglos array arange python numpy where logical-operators

python - una - que es numpy



Cómo usar numpy.where con operadores lógicos (1)

Estoy tratando de encontrar los índices de todos los elementos en una matriz que son mayores que a pero menores que b. Probablemente sea solo un problema con mi sintaxis, pero esto no funciona:

numpy.where((my_array > a) and (my_array < b))

¿Cómo debo arreglar esto? ¿O hay una mejor manera de hacerlo?

¡Gracias!


Aquí hay dos maneras:

In [1]: my_array = arange(10) In [2]: where((my_array > 3) & (my_array < 7)) Out[2]: (array([4, 5, 6]),) In [3]: where(logical_and(my_array > 3, my_array < 7)) Out[3]: (array([4, 5, 6]),)

Para el primero (reemplazando and con & ), tenga cuidado de agregar los paréntesis de manera adecuada: & tiene mayor prioridad que los operadores de comparación. También puede usar * , pero no lo recomendaría: es intrépido y no es un código legible.

In [4]: where((my_array > 3) * (my_array < 7)) Out[4]: (array([4, 5, 6]),)