如何将numpy矩阵元素设置为具有给定索引的值

问题描述

我正在尝试复制这种行为,但是在2D阵列上没有成功

indices = [1,4,5,6,7]
zero = np.zeros(10)
zero[indices] = 42
zero
>>>array([ 0.,42.,0.,0.])

如果我尝试使用零5x5矩阵进行相同操作,我将不知道如何进行正确的切片

indices = np.array([1,2],[2,4],[3,1])
zero = np.zeros((5,5))
zero[indices] = 42

这是我的输出

>>> zero
array([[ 0.,0.],[ 0.,42.]])

我想要的是:

>>> zero
array([[ 0.,42.],0.]])

我尝试过像零[singices,indices]那样切片,但是我只是修改了前两个元素

解决方法

您可以分别提供索引的两个轴(“ x”和“ y”):

{{1}}