Trier le tableau par colonne dans NumPy

Muhammad Maisam Abbas 30 janvier 2023
  1. NumPy Trier le tableau par colonne avec la fonction numpy.sort()
  2. NumPy Trier le tableau par colonne avec la fonction numpy.argsort()
Trier le tableau par colonne dans NumPy

Ce tutoriel présentera des méthodes pour trier un tableau par colonne dans NumPy.

NumPy Trier le tableau par colonne avec la fonction numpy.sort()

Supposons que nous ayons un tableau NumPy 2D et que nous voulions trier les lignes en fonction de l’ordre des éléments à l’intérieur d’une colonne spécifique. Nous pouvons le faire avec la fonction numpy.sort(). La fonction numpy.sort() trie le tableau NumPy. On peut spécifier l’index de la colonne et l’axe dans les paramètres order et axis de la fonction numpy.sort(). Nous devons convertir notre tableau en un tableau structuré avec des champs pour utiliser la fonction numpy.sort(). Nous pouvons utiliser la fonction numpy.view() pour le faire. Voir l’exemple de code suivant.

import numpy as np

array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)

array.view("i8,i8,i8").sort(order=["f1"], axis=0)
print("Array after sorting\n", array)

Production:

Array before sorting
 [[1 1 2]
 [0 0 1]
 [1 1 3]]
Array after sorting
 [[0 0 1]
 [1 1 2]
 [1 1 3]]

Nous avons d’abord créé le tableau NumPy 2D array avec la fonction np.array(). Ensuite, nous avons converti le array en un tableau structuré avec la fonction array.view(). Après cela, nous avons trié le tableau par deuxième colonne avec la fonction sort(order=['f1'], axis=0). Ici, f1 fait référence à la deuxième colonne.

NumPy Trier le tableau par colonne avec la fonction numpy.argsort()

Une autre façon plus simple de faire exactement la même chose que l’approche précédente est d’utiliser la fonction numpy.argsort(). La fonction numpy.argsort() permet également de trier les éléments d’un tableau. C’est très similaire à l’approche précédente, mais nous n’avons pas besoin d’utiliser la fonction numpy.view() pour que cette approche fonctionne. La fonction numpy.argsort() renvoie les indices qui seraient utilisés pour trier un tableau. Voir l’exemple de code suivant.

import numpy as np

array = np.array([[1, 1, 2], [0, 0, 1], [1, 1, 3]])
print("Array before sorting\n", array)

array[array[:, 1].argsort()]
print("Array after sorting\n", array)

Production:

Array before sorting
 [[1 1 2]
 [0 0 1]
 [1 1 3]]
Array after sorting
 [[0 0 1]
 [1 1 2]
 [1 1 3]]

Nous avons d’abord créé un tableau NumPy 2D array avec la fonction np.array(). Nous avons ensuite utilisé une tranche de tableau pour spécifier uniquement la deuxième colonne du array et l’avons triée avec la fonction np.argsort(). Nous avons utilisé les indices retournés par la fonction np.argsort() pour trier le array.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn