Maison > développement back-end > Tutoriel Python > Comment trier un tableau à deux dimensions selon une ligne ou une colonne en Python

Comment trier un tableau à deux dimensions selon une ligne ou une colonne en Python

黄舟
Libérer: 2018-05-11 15:49:44
original
6334 Les gens l'ont consulté

Cet article présente principalement la méthode Python de tri des tableaux bidimensionnels en fonction d'une certaine ligne ou colonne. Il analyse les techniques de fonctionnement courantes de Python en utilisant la méthode lexsort du module numpy pour trier les tableaux bidimensionnels en fonction d'exemples spécifiques. Amis qui en ont besoin Vous pouvez vous référer à ce qui suit

L'exemple de cet article décrit comment Python implémente la méthode de tri d'un tableau bidimensionnel selon une certaine ligne ou colonne. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

lexsort prend en charge le tri des tableaux dans l'ordre des lignes ou des colonnes spécifiées, il s'agit d'un tri indirect, lexsort ne modifie pas l'original ; tableau et renvoie l'index.

(le tableau unidimensionnel correspondant au lexsort est argsort a.argsort(), vous pouvez l'utiliser de cette façon ; argsort ne modifie pas le tableau d'origine et renvoie l'index)

Par défaut, les éléments dans la dernière ligne est triée de petite à grande et renvoie la position de l'index de la dernière ligne d'éléments après le tri.

Supposons que le tableau a, l'index renvoyé ind, ind renvoie un tableau unidimensionnel

Pour un tableau unidimensionnel, a[ind] est le tableau trié.

Pour les tableaux bidimensionnels, des exemples détaillés seront donnés ci-dessous.

import numpy as np
>>> a
array([[ 2, 7, 4, 2],
    [35, 9, 1, 5],
    [22, 12, 3, 2]])
Copier après la connexion

Trier par ordre de la dernière colonne

>>> a[np.lexsort(a.T)]
array([[22, 12, 3, 2],
    [ 2, 7, 4, 2],
    [35, 9, 1, 5]])
Copier après la connexion

Trier par dernière colonne dans l'ordre inverse

>>>a[np.lexsort(-a.T)]
array([[35, 9, 1, 5],
    [ 2, 7, 4, 2],
    [22, 12, 3, 2]])
Copier après la connexion

Trier par ordre de première colonne

>>> a[np.lexsort(a[:,::-1].T)]
array([[ 2, 7, 4, 2],
    [22, 12, 3, 2],
    [35, 9, 1, 5]])
Copier après la connexion

Trier par ordre de dernière ligne

>>> a.T[np.lexsort(a)].T
array([[ 2, 4, 7, 2],
    [ 5, 1, 9, 35],
    [ 2, 3, 12, 22]])
Copier après la connexion

Trier par ordre de première ligne

>>> a.T[np.lexsort(a[::-1,:])].T
array([[ 2, 2, 4, 7],
    [ 5, 35, 1, 9],
    [ 2, 22, 3, 12]])
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal