Heim  >  Artikel  >  Backend-Entwicklung  >  So sortieren Sie ein zweidimensionales Array nach einer Zeile oder Spalte in Python

So sortieren Sie ein zweidimensionales Array nach einer Zeile oder Spalte in Python

黄舟
黄舟Original
2018-05-11 15:49:446258Durchsuche

In diesem Artikel wird hauptsächlich die Python-Methode zum Sortieren zweidimensionaler Arrays nach einer bestimmten Zeile oder Spalte vorgestellt. Er analysiert die gängigen Betriebstechniken von Python mithilfe der Lexsort-Methode des Numpy-Moduls zum Sortieren zweidimensionaler Arrays anhand spezifischer Beispiele. Freunde, die es brauchen Sie können sich auf Folgendes beziehen

Das Beispiel dieses Artikels beschreibt, wie Python implementiert wird, um ein zweidimensionales Array nach einer bestimmten Zeile oder Spalte zu sortieren. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Lexsort unterstützt das Sortieren von Arrays in der Reihenfolge der angegebenen Zeilen oder Spalten; Lexsort ändert das Original nicht Array und gibt den Index zurück.

(entsprechend dem eindimensionalen Array von Lexsort ist argsort a.argsort(), Sie können es auf diese Weise verwenden; argsort ändert das ursprüngliche Array nicht und gibt den Index zurück)

Standardmäßig sind die Elemente in Die letzte Zeile wird von klein nach groß sortiert und die Position des Index der letzten Elementzeile nach der Sortierung zurückgegeben.

Angenommen, Array a, der zurückgegebene Index ind, ind gibt ein eindimensionales Array zurück

Für ein eindimensionales Array ist a[ind] das sortierte Array.

Für zweidimensionale Arrays werden unten detaillierte Beispiele gegeben.

import numpy as np
>>> a
array([[ 2, 7, 4, 2],
    [35, 9, 1, 5],
    [22, 12, 3, 2]])

Sortieren nach der Reihenfolge der letzten Spalte

>>> a[np.lexsort(a.T)]
array([[22, 12, 3, 2],
    [ 2, 7, 4, 2],
    [35, 9, 1, 5]])

Sortieren nach der letzten Spalte in umgekehrter Reihenfolge

>>>a[np.lexsort(-a.T)]
array([[35, 9, 1, 5],
    [ 2, 7, 4, 2],
    [22, 12, 3, 2]])

Nach Reihenfolge der ersten Spalte sortieren

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

Nach Reihenfolge der letzten Zeile sortieren

>>> a.T[np.lexsort(a)].T
array([[ 2, 4, 7, 2],
    [ 5, 1, 9, 35],
    [ 2, 3, 12, 22]])

Nach Reihenfolge der ersten Zeile sortieren

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

Das obige ist der detaillierte Inhalt vonSo sortieren Sie ein zweidimensionales Array nach einer Zeile oder Spalte in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn