ホームページ >バックエンド開発 >Python チュートリアル >Python で行または列に従って 2 次元配列を並べ替える方法

Python で行または列に従って 2 次元配列を並べ替える方法

黄舟
黄舟オリジナル
2018-05-11 15:49:446292ブラウズ

この記事では、特定の行または列に従って 2 次元配列をソートする Python の方法を主に紹介し、numpy モジュールの lexsort メソッドを使用して 2 次元配列をソートする Python の一般的な操作テクニックを、具体的な例に基づいて分析します。この記事の次の

例は、Python が特定の行または列による 2 次元配列の並べ替えを実装する方法を説明しています。参考のために皆さんと共有してください。詳細は次のとおりです:

lexsort は、指定された行または列の順序での配列の並べ替えをサポートしています。これは間接的な並べ替えであり、lexsort は元の配列を変更せず、インデックスを返します。

(lexsort 1 次元配列に対応し、このように使用できます。argsort は元の配列を変更せず、インデックスを返します) argsort a.argsort()

デフォルトでは、最後の行の要素は小さいものから大きいものへソートされます。最後の行の要素がソートされた後のインデックスの位置が返されます。

配列 a、返されるインデックス ind、ind が 1 次元配列を返すとします。

1 次元配列の場合、a[ind] はソートされた配列です。

二次元配列の詳細な例を以下に示します。最後の列による
import numpy as np
>>> a
array([[ 2, 7, 4, 2],
    [35, 9, 1, 5],
    [22, 12, 3, 2]])
のソルト最後の列によるresurreee

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

sort最初の列ordero

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

sortby by low order

rreee

by

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

以上がPython で行または列に従って 2 次元配列を並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。