我有一个 numpy 数组:
a = np.array(["dcba", "abc", "bca", "bcda", "tda", "a"])
现在我有一个矢量化 Levenshtein 编辑距离函数,它测量给定字符串与给定数组的距离,例如,对于字符串 ab
:
l_distv("ab", a)
返回:
array([3, 1, 3, 4, 3, 1])
我想以某种方式对数组进行排序,以便编辑距离小于 2 的任何元素移动到第一个位置,而其余元素移动到它们后面而不改变它们的顺序。所以结果是:
array(["abc", "a", "dcba", "bca", "bcda", "tda"])
我已经这样做了,但它很丑陋,我认为有更有效的方法。
最佳答案
在字典中添加元素和编辑距离
dictionary = dict(zip(a,array))
然后根据编辑距离对字典进行排序
sorted_dictionary = sorted(dictionary.items(), key=operator.itemgetter(1))
关于python - 使用条件对数组进行排序的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951123/