python - 在 Numpy 数组中累积常量值

标签 python arrays numpy

我正在尝试对 numpy 数组的某些特定单元格求和,但如果没有慢循环我找不到任何方法:

coords = np.array([[1,2],[1,2],[1,2],[0,0]])
X      = np.zeros((3,3))

for i,j in coords:
  X[i,j] +=1 

导致:

X = [[ 1.  0.  0.]
     [ 0.  0.  3.]
     [ 0.  0.  0.]]

X[coords[:,0],coords[:,1] += 1 返回

X = [[ 1.  0.  0.]
     [ 0.  0.  1.]
     [ 0.  0.  0.]]

有什么帮助吗?

最佳答案

numpy.at正是针对这些情况。

In [1]: np.add.at(X,tuple(coords.T),1)

In [2]: X
Out[2]: 
array([[ 1.,  0.,  0.],
       [ 0.,  0.,  3.],
       [ 0.,  0.,  0.]])

关于python - 在 Numpy 数组中累积常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36863404/

相关文章:

python - 使用局部变量从一个函数到另一个函数

python - Pandas 将行数据转换为表格形式

C - 为什么我在尝试读取包含反斜杠的字符时遇到段错误?

python - 安装numpy,仍然有问题

python - 如何使用 python 将二进制图像转换为灰度和 RGB?

python - 如何为按时间排序的 matplotlib 图序列制作动画

javascript - es6 Array Reduce处理第一个被减少的项目

arrays - Minizinc - 如何限制数组的每一列仅包含给定整数之一?

python - ValueError : 2 columns passed, 传递的数据有 1 列

python - 在多种条件下从数组中选择行