Tengo una matriz numpy 2D y tengo una serie de filas y columnas que deben establecerse en un valor particular. Consideremos el siguiente ejemplocómo modificar una matriz numpy 2D en ubicaciones específicas sin un bucle?
a = array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Deseo modificar entradas en filas [0,2] y columnas [1,2]. Esto debe resultar en la siguiente matriz
a = array([[1, 2, 0],
[4, 5, 0],
[7, 8, 9]])
Yo siguiente y que dio lugar a la modificación de cada secuencia de la columna en cada fila
rows = [0,1]
cols = [2,2]
b=a[numpy.ix_(rows,columns)]
El resultado fue la siguiente matriz modificación de cada columna de la matriz especificada
array([[1, 0, 0],
[4, 5, 6],
[7, 0, 0]])
¿Alguien podría decirme cómo hacerlo?
Muchas gracias
EDIT: Es de señalar que las filas y columnas coincidentemente happend ser sequentia. El verdadero punto es que estos podrían ser arbitrarios y en cualquier orden. si es rows = [a, b, c] y cols = [n x z] entonces quiero modificar exactamente tres elementos en las ubicaciones (a, n), (b, x), (c, z).
Tienes mucha razón. Gracias por señalar a la documentación. Fue un error en el programa. Lo sabía pero no podía funcionar. Tu respuesta es muy explicativa. – Shan
¿Qué pasa con la sintaxis [x] que está pasando? –
@johnktejik Eso es solo el resultado de una celda de ejecución de un notebook ipython/jupyter. Piense en ello como un aviso numerado en línea. – JoshAdel