Numpy对多个重复索引进行操作

时间:2019-01-23 16:56:28

标签: python numpy

我想计算2维数组的项目 当我按批处理索引递增时:

a = np.zeros((3,3))
i = [2,0,2] # indices in axis 0
j = [1,2,1] # indices in axis 1
a[i,j] += 1

输出

array([[0., 0., 1.],
       [0., 0., 0.],
       [0., 1., 0.]])

问题
 由于索引重复,a[2,1] += 1仅出现一次。有没有办法使它发生多次,所以结果将是

array([[0., 0., 1.],
       [0., 0., 0.],
       [0., 2., 0.]])

1 个答案:

答案 0 :(得分:0)

这可能有点不直观,但是numpy在索引中对待listtuple的方式有所不同,例如:a[[2, 1]] += 1向行{{1}添加一个}和1,而2向单元格a[(2, 1)] += 1添加一个。

就您而言,您可能只想要

(2, 1)