1
现在我有一个矩阵:test_projs和一个索引矩阵GT_index如何有效地获得由另一个矩阵索引的子矩阵?
GT_index每一行的每个元素意味着test_projs中该行所需元素的索引。现在我想计算选定区域上每行的总和。
一个简单的例子:
test_projs = pd.DataFrame({0:[1,2,3], 1:[4,5,6], 2:[7,8,9], 3:[1,3,5]}, index=[3,4,5])
GT_index = pd.DataFrame({0:[3,2,1], 1:[2,3,2], 2:[1,1,3]}, index=[3,4,5])
b = np.zeros(3)
i = 0
for (index1, row1),(index2,row2) in zip(test_projs.iterrows(),GT_index.iterrows()) :
b[i]=row1[row2].values.sum()
i+=1
b
和实施例的上面的结果是:
但它是缓慢的。你知道如何提高效率吗?
我删除“MATLAB”的标签,因为这个问题是不是MATLAB相关。 – 2016-10-05 06:30:34
你的代码不适合我。你可以使用像'test_projs = pd.DataFrame({0:[1,2,3], 1:[4,5,6], 2:[7,8,9], 3: [1,3,5]},index = [3,4,5])'并添加所需的输出? – jezrael
@jezrael是的,我会给出这个例子。 –