Asignar a una cuadrícula de una matriz NumPy dados los índices de fila y columna
Quiero acceder a una restricción específica de fila y columna de una matriz numpy 2d.
> x
array([[1, 2, 0],
[3, 4, 0],
[0, 0, 1]])
Si hago lo que parece natural, solo obtengo los elementos diagonales de la matriz restringida.
> x[[0,1], [0,1]]
array([1, 4])
En cambio, puedo hacer esto para leer lo que quiero:
> x[[0,1],:][:,[0,1]]
array([[1, 2],
[3, 4]])
... pero no me deja escribir / asignar los valores.
> x[[0,1],:][:,[0,1]] = np.array([[1,0],[0,1]])
> x
array([[1, 2, 0],
[3, 4, 0],
[0, 0, 1]])
¿Cómo puedo escribir en una matriz aquí?