
使用lexsort:
import numpy as np a = np.array([(3, 2), (6, 2), (3, 6), (3, 4), (5, 3)])ind = np.lexsort((a[:,1],a[:,0]))a[ind]# array([[3, 2],# [3, 4],# [3, 6],# [5, 3],# [6, 2]])
a.ravel()如果
a为,则返回一个视图
C_CONTIGUOUS。如果是这样的话,@ars的方法(通过使用
ravel代替稍作修改)将
flatten产生一种很好
a的就地 排序方法:
a = np.array([(3, 2), (6, 2), (3, 6), (3, 4), (5, 3)])dt = [('col1', a.dtype),('col2', a.dtype)]assert a.flags['C_CONTIGUOUS']b = a.ravel().view(dt)b.sort(order=['col1','col2'])由于
b是一个视图
a,排序
b排序
a,以及:
print(a)# [[3 2]# [3 4]# [3 6]# [5 3]# [6 2]]
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)