>백엔드 개발 >파이썬 튜토리얼 >Python에서 행이나 열에 따라 2차원 배열을 정렬하는 방법

Python에서 행이나 열에 따라 2차원 배열을 정렬하는 방법

黄舟
黄舟원래의
2018-05-11 15:49:446290검색

이 글에서는 특정 행이나 열에 따라 2차원 배열을 정렬하는 Python의 방법을 주로 소개합니다. 구체적인 예를 기반으로 2차원 배열을 정렬하는 numpy 모듈의 lexsort 방법을 사용하여 Python의 일반적인 작동 기술을 분석합니다. 이 문서의 다음

예제는 Python이 특정 행이나 열을 기준으로 2차원 배열을 정렬하는 방법을 설명합니다. 참조용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.

lexsort는 지정된 행이나 열의 순서로 배열을 정렬하는 것을 지원합니다. 이는 간접 정렬이므로 lexsort는 원래 배열을 수정하지 않고 인덱스를 반환합니다.

(lexsort 1차원 배열에 대응해서 이런 식으로 사용할 수 있습니다. argsort는 원래 배열을 수정하지 않고 인덱스를 반환합니다.) argsort a.argsort()

기본적으로 마지막 행의 요소는 작은 것에서 큰 것으로 정렬되며, 마지막 행의 요소가 정렬된 후 인덱스의 위치가 반환됩니다.

배열 a, 반환된 인덱스 ind, ind가 1차원 배열을 반환한다고 가정합니다.

1차원 배열의 경우 a[ind]는 정렬된 배열입니다.

2차원 배열에 대한 자세한 예는 아래에 나와 있습니다.

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

마지막 열 순서로 정렬

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

마지막 열 역순으로 정렬

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

첫 번째 열 순서로 정렬

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

마지막 행 순서로 정렬

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

By 첫 번째 행 순서 정렬 작성자:

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

위 내용은 Python에서 행이나 열에 따라 2차원 배열을 정렬하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.