Atribuir a uma grade de uma matriz NumPy dados os índices de linha e coluna
Eu quero acessar uma restrição específica de linha e coluna de uma matriz numpy 2D.
> x
array([[1, 2, 0],
[3, 4, 0],
[0, 0, 1]])
Se eu fizer o que parece natural, apenas obtenho os elementos diagonais da matriz restrita.
> x[[0,1], [0,1]]
array([1, 4])
Em vez disso, posso fazer isso para ler o que quero -
> x[[0,1],:][:,[0,1]]
array([[1, 2],
[3, 4]])
..mas não me deixa escrever / atribuir os valores.
> x[[0,1],:][:,[0,1]] = np.array([[1,0],[0,1]])
> x
array([[1, 2, 0],
[3, 4, 0],
[0, 0, 1]])
Como posso escrever para uma matriz aqui?