我想在一个二维数组的每一行中恰好减少一个元素,给定一些索引,每行一个。所以基本上我希望以下内容被矢量化:
for row, col in enumerate(indices):
array[row,col] -= 1
我可以使用numpy.choose
选择我想要修改的元素,但不幸的是,这些元素只是被复制了。换句话说,这样的东西不起作用:
selection = np.choose(indices, array.T)
selection -= 1
答案 0 :(得分:1)
使用integer array indexing
进行矢量化访问,从而分配 -
array[np.arange(len(indices)), indices] -= 1