您好我想使用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]
但我认为如果不自己编写循环,应该采用另一种方式。
由于
答案 0 :(得分:3)
如果将assertArrayEquals(array1, array2, DELTA);
转换为numpy数组,则可以使用surnames
返回的整数数组对其进行索引:
lexsort
如果你想坚持使用普通的Python列表,你可以这样做:
sorted_surnames = np.array(surnames)[ind]