Supongamos que tengo una matriz 2D NumPy tales como:Conseguir el índice de la fila para una matriz 2D NumPy cuando se conocen los valores de columna múltiples
a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
¿Cómo puedo encontrar el índice de la fila para la que conozco varios valores? Por ejemplo, si se sabe que la 0ª columna es 2 y la 1ª columna es 5, me gustaría saber el índice de la fila donde se cumple esta condición (fila 1 en este caso).
En mi aplicación, las dos primeras columnas son coordenadas (x, y), y la tercera columna es información sobre esa coordenada. Estoy tratando de encontrar coordenadas particulares en una lista para poder cambiar el valor en la tercera columna.
EDIT: Para aclarar, aquí es un ejemplo no-cuadrado:
a = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10 , 11, 12], [13, 14, 15, 16, 17, 18]]
Supongamos que sé la fila Busco tiene 13 en la columna 0 y 14 en la primera columna. Me gustaría devolver el índice de esa fila. En este caso, me gustaría devolver el índice 2 (2da fila).
O mejor aún, me gustaría editar la cuarta columna de la fila que tiene 13 en la columna 0 y 14 en la primera columna. Aquí es una solución que encontré para el caso que he descrito (cambiando el valor a 999):
un [(a [:, 0] == 13) & (a [:, 1 ] == 14), 3] = 999
da:
a = [[1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12], [13, 14, 15, 999, 17, 18]]
Lo siento si esto no estaba claro. ¿Podría alguien señalar en mi publicación original (por encima de la edición) cómo podría interpretarse de manera diferente, porque tengo problemas para verla?
Gracias.
EDIT 2: error corregido en la primera edición (en negrita)
ahora puedo ver cómo hice todo este asunto confuso para todos. La solución a mi problema está bien descrita en la condición b) de la solución de comer. Gracias.
Estoy fallado. Después de su edición, ¿cuál es su resultado para 'sum (a [0] == 13) '? Gracias – eat
Desafortunadamente me equivoqué al editar mi publicación la primera vez, que ahora he modificado. Gracias por tu paciencia. – lookitsmarc
encantados de que haya podido resolver su problema. Si crees que mi respuesta fue valiosa para ti, puedes considerarla para retribuirla ;-). Gracias – eat