numpy.lexsort() 用于对多个序列进行排序。把它想象成对电子表格进行排序,每一列代表一个序列,排序时优先照顾靠后的列。

  • 不修改原数组,返回索引。

按照第一列排序,如:

import numpy as np

a = [[100, 2, 34], [12, 45, 2], [45, 90, 21]]
a = np.array(a)

b = a[:, 0] # [100  12  45]
index = np.lexsort((b,)) # [1 2 0]
print(a[index]) 

结果:

[[ 12  45   2]
 [ 45  90  21]
 [100   2  34]]

按照第一行排序,如:

import numpy as np

a = [[100, 2, 34], [12, 45, 2], [45, 90, 21]]
a = np.array(a)

b = a[0, :] # [100   2  34]
index = np.lexsort((b,)) # [1 2 0]
print(a.T[index].T)

结果:

[[  2  34 100]
 [ 45   2  12]
 [ 90  21  45]]

参考链接:here1here2

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐