np.argsort支持关系

时间:2016-11-28 23:00:56

标签: python-3.x sorting numpy

假设我们定义了一个功能"DefaultConnection",支持联系as described in this solution

argsort

我们测试它:

def argsort_with_support_for_ties(a):
  rnd_array = np.random.random(a.size)
  return np.lexsort((rnd_array,a))

他跟随结果:

input  = np.array([5.5, 3.5, 2.0, 2.0, 7.0, 7.0, 7.0, 3.5, 6.5, 6.5, 6.5, 9.0])
output = argsort_with_support_for_ties(input)

请注意条目> np.stack([input, output], axis=0).T array([[ 5.5, 3. ], [ 3.5, 2. ], [ 2. , 1. ], [ 2. , 7. ], [ 7. , 0. ], <--- A [ 7. , 10. ], <--- B [ 7. , 9. ], [ 3.5, 8. ], [ 6.5, 5. ], [ 6.5, 4. ], [ 6.5, 6. ], [ 9. , 11. ]]) A如何共享相同的输入值(B),但最终位于截然不同的位置70

这不是我希望得到的。一个更可接受的答案是:

10

那么上面的output = np.array([4, 2, 1, 0, 8, 9, 10, 3, 5, 6, 7, 11]) 失败了什么?

1 个答案:

答案 0 :(得分:1)

我知道您要对元素进行排名,以便抢七是随机的。为此,您只需要反转<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <div id="float-button" data-float-toggle="click"> <div class="top-bottom" > <a href="#">stackoverflow</a> </div> </div>

中的排列
lexsort

我的输出(由于随机性而与你的输出不同):

output = np.argsort(np.lexsort((rnd_array,a)))