【发布时间】:2020-01-27 23:13:36
【问题描述】:
我在 c++ armadillo 中使用 sort_index() 函数,但它似乎没有给出正确的结果:
输入向量是[3,4,2,1,5] 对两个方向进行排序
arma::sort_index(input, "ascend").print();
arma::sort_index(input, "descend").print();
并获得以下结果: [3,2,0,1,4] 和 [4,1,0,2,3]
两者都不正确。按升序排序应该得到 [2,3,1,0,4] (用numpy.searchsorted 加倍检查并给出上述结果)。
--- 编辑---
感谢您的回复!我现在意识到我误解了sort_index 的索引方式。我还在努力寻找一个高效、等效的函数,在c++中实现np.searchsorted...
【问题讨论】:
-
您如何达到预期结果?最小的项目在索引
3(值1),第二小的项目在索引2(值2),第三小的项目在索引0(值3)和以此类推。 -
你的意思是你检查了
numpy.argsort?你能发布你的预期结果,以及仔细检查它的 numpy 代码吗? -
看起来 sort_index[0] 正在为您提供将被排序到索引 0 的值的当前索引,而您期望它是当前位于索引 0 的值的排序索引,如果有意义的话
标签: c++ armadillo rcpparmadillo