1.numpy.lexsort()不修改原数组,返回索引,小数序列在前,如果要倒叙前面加-负号
2.先对指定行列排序;若有相等值,再根据相等值所在行(或列)排序;
3.若还有想等值,一直往前递推,如果有多行列,顺序为从后往前
4.k[:,:]序列切片,获取全部序列,k[起:末:间隔(行),起:末:间隔(列)]不包含末数据
5.k.T 矩阵转置,行列互换
1.按最后一列排序
Original=np.array([[1,2,6,4], [7,5,3,4], [7,8,8,9]]) print("原型:\n"+str(Original)) #按最后一列排序(x,y)(1,4)(2,4)(3,4) sort=Original.T print("1.按最后一个列排序(x,y)(1,4)(2,4)(3,4):\n转型后:\n"+str(sort)) sorted_index=np.lexsort(sort) print("排序后输出序列:\n"+str(sorted_index)) print("先对[4,4,9]排序得到[0,0,1],出现同等级的,再往前推对[6,3,8]排序得到[1,0,2]\n") print("排序后输出数组\n"+str(Original[sorted_index])) 输出: 原型: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 1.按最后一个列排序(x,y)(1,4)(2,4)(3,4): 转型后: [[1 7 7] [2 5 8] [6 3 8] [4 4 9]] 排序后输出序列: [1 0 2] 先对[4,4,9]排序得到[0,0,1],出现同等级的,再往前推对[6,3,8]排序得到[1,0,2] 排序后输出数组 [[7 5 3 4] [1 2 6 4] [7 8 8 9]]
讯享网
2.按最后一个列排序(x,y)(1,4)(2,4)(3,4),倒序
讯享网sort=Original.T print("2.按最后一个列排序(x,y)(1,4)(2,4)(3,4)倒序:\n转型后:\n"+str(sort)) sorted_index=np.lexsort(-sort) print("排序后输出序列:\n"+str(sorted_index)) print("np.lexsort(-sort)在输入矩阵前加入符号为倒序\n") print("排序后输出数组\n"+str(Original[sorted_index])) 输出: 原型: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 2.按最后一个列排序(x,y)(1,4)(2,4)(3,4)倒序: 转型后: [[1 7 7] [2 5 8] [6 3 8] [4 4 9]] 排序后输出序列: [2 0 1] np.lexsort(-sort)在输入矩阵前加入符号为倒序 排序后输出数组 [[7 8 8 9] [1 2 6 4] [7 5 3 4]]
3.按第三列排序(某列)
sort=Original[:,:3].T print("3.按第三列排序(x,y)(1,3)(2,3)(3,3):\n"+str(sort)) sorted_index=np.lexsort(sort) print("排序后输出序列:\n"+str(sorted_index)) print("对[6,3,8]排序得到[1,0,2],Original[:,:3]=[[1,2,6],[7,5,3],[7,8,8]]"+"再对其进行转置\n") print("排序后输出数组\n"+str(Original[sorted_index])) 输出: 原型: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 3.按第三列排序(x,y)(1,3)(2,3)(3,3): [[1 7 7] [2 5 8] [6 3 8]] 排序后输出序列: [1 0 2] 对[6,3,8]排序得到[1,0,2],Original[:,:3]=[[1,2,6],[7,5,3],[7,8,8]]再对其进行转置 排序后输出数组 [[7 5 3 4] [1 2 6 4] [7 8 8 9]]
4.按最后一行排序
讯享网#按最后一行排序(x,y)(3,1)(3,2)(3,3)(3,4) sort=Original print("4.按最后一行排序(x,y)(3,1)(3,2)(3,3)(3,4):\n转型后:\n"+str(sort)) sorted_index=np.lexsort(sort) print("排序后输出序列:\n"+str(sorted_index)) print("先对[7,8,8,9]排序得到[0,1,1,2],出现同等级的,再往前推对[7,5,3,4]排序得到[0,2,1,3]\n") print("排序后输出数组\n"+str(Original.T[sorted_index].T)) 原型: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 4.按最后一行排序(x,y)(3,1)(3,2)(3,3)(3,4): 转型后: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 排序后输出序列: [0 2 1 3] 先对[7,8,8,9]排序得到[0,1,1,2],出现同等级的,再往前推对[7,5,3,4]排序得到[0,2,1,3] 排序后输出数组 [[1 6 2 4] [7 3 5 4] [7 8 8 9]]
5.按第一行排序(某行)
#按第一行排序(x,y)(1,1)(1,2)(1,3)(1,4) sort=Original[:1,:] print("5.按第一行排序(x,y)(1,1)(1,2)(1,3)(1,4):\n转型后:\n"+str(sort)) sorted_index=np.lexsort(sort) print("排序后输出序列:\n"+str(sorted_index)) print("先对[7,8,8,9]排序得到[0,1,1,2],出现同等级的,再往前推对[7,5,3,4]排序得到[0,2,1,3]\n") print("排序后输出数组\n"+str(Original.T[sorted_index].T)) 输出: 原型: [[1 2 6 4] [7 5 3 4] [7 8 8 9]] 5.按第一行排序(x,y)(1,1)(1,2)(1,3)(1,4): 转型后: [[1 2 6 4]] 排序后输出序列: [0 1 3 2] 先对[7,8,8,9]排序得到[0,1,1,2],出现同等级的,再往前推对[7,5,3,4]排序得到[0,2,1,3] 排序后输出数组 [[1 2 4 6] [7 5 4 3] [7 8 9 8]]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/117675.html