我试图使用2D numpy矩阵计算累积概率计数。当一个对象的x轴为x,y轴为y时,我将添加到索引小于或等于(x,y)的单元格
即。该对象在3x3索引单元格中具有1,1。矩阵应该如下所示:
[1][1][0]
[1][1][0]
[0][0][0]
问题是,我不能通过像matrix[:1][:1]
这样的索引来做到这一点。
如果可能的话。我不想切换到其他库而不是numpy因为它需要太多的工作。是否有任何pythonic方法可以在不使用令人生畏的for循环的情况下完成它?
答案 0 :(得分:3)
您必须一步进行索引,即[i_expr,j_expr]
而不是[i_expr][j_expr]
。 ([][]
形式仅适用于标量索引,甚至存在错误的样式。)如果要包含边界,还必须添加1。
>>> bins = np.zeros((5, 5), int)
>>> i, j = 1, 1
>>> bins[:i+1, :j+1] += 1
>>> bins
array([[1, 1, 0, 0, 0],
[1, 1, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0]])