【发布时间】:2014-05-28 07:56:15
【问题描述】:
假设我有 2 个矩阵 M 和 N(都有 > 1 列)。我还有一个索引矩阵 I,它有 2 列——1 列用于 M,1 列用于 N。N 的索引是唯一的,但 M 的索引可能出现不止一次。我要执行的操作是,
for i,j in w:
M[i] += N[j]
除了 for 循环之外,还有更有效的方法吗?
【问题讨论】:
-
问题中缺少:明显的
M[w[:, 0]] += N[w[:, 1]]失败,因为w[:, 0]中的索引不是唯一的,因此值会被覆盖。 -
那么当您不进行就地添加而是创建第三个数组时会发生什么。这会给你想要的结果吗?
-
如果你没有在适当的地方进行操作,你最终会得到一个长度与
I[i] = M[w[i,0]] + N[w[i,1]]匹配的新数组。然后如何将这个矩阵按w[:,0]分组并求和它的值?