Home > Article > Backend Development > How to sort a two-dimensional array according to a row or column in Python
This article mainly introduces Python's method of sorting two-dimensional arrays according to a certain row or column. It analyzes the common operating techniques of Python using the lexsort method of the numpy module to sort two-dimensional arrays based on specific examples. Friends who need it You can refer to the following
The example of this article describes how Python implements the method of sorting a two-dimensional array according to a certain row or column. Share it with everyone for your reference, the details are as follows:
lexsort supports sorting arrays in the order of specified rows or columns; it is indirect sorting, lexsort does not modify the original array and returns the index.
(Corresponding to lexsort one-dimensional array is argsort a.argsort()
You can use it this way; argsort does not modify the original array and returns the index)
The default is to press the last The elements in a row are sorted from small to large, and the index position of the last row of elements after sorting is returned.
Suppose array a, the returned index ind, ind returns a one-dimensional array
For a one-dimensional array, a[ind] is the sorted array.
For two-dimensional arrays, detailed examples will be given below.
import numpy as np >>> a array([[ 2, 7, 4, 2], [35, 9, 1, 5], [22, 12, 3, 2]])
Sort by last column order
>>> a[np.lexsort(a.T)] array([[22, 12, 3, 2], [ 2, 7, 4, 2], [35, 9, 1, 5]])
Sort by last column in reverse order
>>>a[np.lexsort(-a.T)] array([[35, 9, 1, 5], [ 2, 7, 4, 2], [22, 12, 3, 2]])
By first column Sort in order
>>> a[np.lexsort(a[:,::-1].T)] array([[ 2, 7, 4, 2], [22, 12, 3, 2], [35, 9, 1, 5]])
Sort in order of the last row
>>> a.T[np.lexsort(a)].T array([[ 2, 4, 7, 2], [ 5, 1, 9, 35], [ 2, 3, 12, 22]])
Sort in order of the first row
>>> a.T[np.lexsort(a[::-1,:])].T array([[ 2, 2, 4, 7], [ 5, 35, 1, 9], [ 2, 22, 3, 12]])
The above is the detailed content of How to sort a two-dimensional array according to a row or column in Python. For more information, please follow other related articles on the PHP Chinese website!