我不确定如何在中做到最好
numpy,但是在纯Python中,推理将是:
aargsort正在
range(len(a))告诉您这些项目
aSort来自何处的排列-就像在纯Python中一样:
>>> x = list('ciaobelu')>>> r = range(len(x))>>> r.sort(key=x.__getitem__)>>> r[2, 4, 0, 5, 1, 6, 3, 7]>>>
即
sorted(x)will的第一个参数是
x[2],第二个
x[4]以此类推。
因此,给定排序后的版本,您可以通过“将项目放回它们的来源”来重建原始版本:
>>> s = sorted(x)>>> s['a', 'b', 'c', 'e', 'i', 'l', 'o', 'u']>>> original = [None] * len(s)>>> for i, c in zip(r, s): original[i] = c... >>> original['c', 'i', 'a', 'o', 'b', 'e', 'l', 'u']>>>
当然,会有更严格,更快速的方式来表达它
numpy(不幸的是,我对Python本身的了解不多,我不了解Python本身;-),但是我希望通过展示“您需要执行的 *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)