通过列索引修改numpy数组的每一行中的一个元素

时间:2017-06-05 15:30:25

标签: numpy

我想在一个二维数组的每一行中恰好减少一个元素,给定一些索引,每行一个。所以基本上我希望以下内容被矢量化:

for row, col in enumerate(indices):
    array[row,col] -= 1

我可以使用numpy.choose选择我想要修改的元素,但不幸的是,这些元素只是被复制了。换句话说,这样的东西不起作用:

selection = np.choose(indices, array.T)
selection -= 1

1 个答案:

答案 0 :(得分:1)

使用integer array indexing进行矢量化访问,从而分配 -

array[np.arange(len(indices)), indices] -= 1