gpt4 book ai didi

python - 如何在没有循环的情况下使用 numpy.lexsort

转载 作者:行者123 更新时间:2023-11-28 16:30:48 24 4
gpt4 key购买 nike

您好,我想使用 lexsort 排序一个 numpy.array。

import numpy as np
surnames = ['Hertz', 'Galilei', 'Hertz']
names = ['Heinrich', 'Galilao', 'Gustav']
ind = np.lexsort((names,surnames))

但是我怎样才能根据这个索引对数组进行排序呢?

我愿意

surnames2 = surnames.copy()
for i, a in enumerate(ind):
surnames2[i] = surnames[a]

但我觉得应该有另一种不用自己写循环的方法。

谢谢

最佳答案

如果您将 surnames 转换为一个 numpy 数组,那么您可以简单地使用 lexsort 返回的整数数组对其进行索引:

sorted_surnames = np.array(surnames)[ind]

如果你想坚持使用普通的 Python 列表,你可以这样做:

sorted_surnames = [n for (i, n) in sorted(zip(ind, surnames), key=lambda x: x[0])]

关于python - 如何在没有循环的情况下使用 numpy.lexsort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32143533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com