python3.x - Python에서 다차원 배열을 정렬하는 직접적인 방법이 있습니까?
習慣沉默
習慣沉默 2017-05-18 10:53:30
0
4
599

다음 배열을 첫 번째 열의 내림차순으로 정렬하는 방법:

으아악

인터넷의 다른 곳에서는 direct dl1.sort()가 기본적으로 첫 번째 열을 기준으로 정렬한다고 하는데 작동하지 않는 것 같습니다

習慣沉默
習慣沉默

모든 응답 (4)
迷茫
sorted(dl1, key=lambda x: x[0])
    黄舟
    >>> a=np.array([[ 0.02598003,1.], [ 0.00730082,2.], [ 0.05471569,3.], [ 0.02599167,4.], [ 0.0544947 ,5.], [ 0.00753346,6.]]) >>> a.sort(0) >>> a array([[ 0.00730082, 1. ], [ 0.00753346, 2. ], [ 0.02598003, 3. ], [ 0.02599167, 4. ], [ 0.0544947 , 5. ], [ 0.05471569, 6. ]]) >>>

    np.sort 是把各维分别排序的

    如果你是要二维组的联合排序,要用np.argsort方法

    >>> a=np.array([[ 0.02598003,1.], [ 0.00730082,2.], [ 0.05471569,3.], [ 0.02599167,4.], [ 0.0544947 ,5.], [ 0.00753346,6.]]) >>> a[a.argsort(0)[:,0]] array([[ 0.00730082, 2. ], [ 0.00753346, 6. ], [ 0.02598003, 1. ], [ 0.02599167, 4. ], [ 0.0544947 , 5. ], [ 0.05471569, 3. ]]) >>>

    如果数据很多的话,用python内部的sorted会降低效率

      迷茫
      In [1]: lst= [[0.00730082, 2.0], ...: [0.05471569, 3.0], ...: [0.02599167, 4.0], ...: [0.0544947, 5.0], ...: [0.00753346, 6.0]] ...: In [2]: sorted(lst, key=lambda x: x[0]) Out[2]: [[0.00730082, 2.0], [0.00753346, 6.0], [0.02599167, 4.0], [0.0544947, 5.0], [0.05471569, 3.0]]
        为情所困
        dl1.sort(axis=0)

        ndarray.sort的关键字参数axis就是用来按照某列排序

        axis : int, optional

        Axis along which to sort. Default is -1, which means sort along the last axis.

          최신 다운로드
          더>
          웹 효과
          웹사이트 소스 코드
          웹사이트 자료
          프론트엔드 템플릿
          회사 소개 부인 성명 Sitemap
          PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!