diff --git a/contrib/numpy/index.md b/contrib/numpy/index.md index 18ed17a..b2d459a 100644 --- a/contrib/numpy/index.md +++ b/contrib/numpy/index.md @@ -7,3 +7,4 @@ - [Operations on Arrays in NumPy](operations-on-arrays.md) - [Loading Arrays from Files](loading_arrays_from_files.md) - [Saving Numpy Arrays into FIles](saving_numpy_arrays_to_files.md) +- [Sorting NumPy Arrays](sorting-array.md) diff --git a/contrib/numpy/sorting-array.md b/contrib/numpy/sorting-array.md new file mode 100644 index 0000000..65e9c25 --- /dev/null +++ b/contrib/numpy/sorting-array.md @@ -0,0 +1,104 @@ +# Sorting NumPy Arrays +- Sorting arrays is a common operation in data manipulation and analysis. +- NumPy provides various functions to sort arrays efficiently. +- The primary methods are `numpy.sort`,`numpy.argsort`, and `numpy.lexsort` + +### 1. numpy.sort() + +The `numpy.sort` function returns a sorted copy of an array. + +#### Syntax : + +```python +numpy.sort(arr, axis=-1, kind=None, order=None) +``` +- **arr** : Array to be sorted. +- **axis** : Axis along which to sort. (By Default is -1) +- **kind** : Sorting algorithm. Options are 'quicksort', 'mergesort', 'heapsort', and 'stable'. (By Default 'quicksort') +- **order** : When arr is an array with fields defined, this argument specifies which fields to compare first. + +#### Example : + +```python +import numpy as np + +arr = np.array([1,7,0,4,6]) +sarr = np.sort(arr) +print(sarr) +``` + +**Output** : +```python +[0 1 4 6 7] +``` + +### 2. numpy.argsort() + +The `numpy.argsort` function returns the indices that would sort an array. Using those indices you can sort the array. + +#### Syntax : + +```python +numpy.argsort(a, axis=-1, kind=None, order=None) +``` +- **arr** : Array to be sorted. +- **axis** : Axis along which to sort. (By Default is -1) +- **kind** : Sorting algorithm. Options are 'quicksort', 'mergesort', 'heapsort', and 'stable'. (By Default 'quicksort') +- **order** : When arr is an array with fields defined, this argument specifies which fields to compare first. + +#### Example : + +```python +import numpy as np + +arr = np.array([2.1,7,4.2,4.3,6]) +indices = np.argsort(arr) +print(indices) +s_arr = arr[indices] +print(s_arr) +``` + +**Output** : +```python +[0 2 3 4 1] +[2.1 4.2 4.3 6. 7. ] +``` + +### 3. np.lexsort() + +The np.lexsort function performs an indirect stable sort using a sequence of keys. + +#### Syntax : + +```python +numpy.lexsort(keys, axis=-1) +``` +- **keys**: Sequence of arrays to sort by. The last key is the primary sort key. +- **axis**: Axis to be indirectly sorted.(By Default -1) + +#### Example : + +```python +import numpy as np + +a = np.array([5,4,3,2]) +b = np.array(['a','d','c','b']) +indices = np.lexsort((a,b)) +print(indices) + +s_arr = a[indices] +print(s_arr) + +s_arr = b[indices] +print(s_arr) +``` + +**Output** : +```python +[0 3 2 1] +[2 3 4 5] +['a' 'b' 'c' 'd'] +``` + +NumPy provides powerful and flexible functions for sorting arrays, including `np.sort`, `np.argsort`, and `np.lexsort`. +These functions support sorting along different axes, using various algorithms, and sorting by multiple keys, making them suitable for a wide range of data manipulation tasks.