【问题标题】:How to do an absolute sorting of columns in a matrix (numpy)如何对矩阵中的列进行绝对排序(numpy)
【发布时间】:2021-05-13 23:44:34
【问题描述】:

所以我有一个矩阵:

    a = np.array([[7,-1,0,5],
                  [2,5.2,4,2],
                  [3,-2,1,4]])

我想按绝对值升序排序。我使用了 np.sort(abs(a)) 和 sorted(a,key=abs),sorted 可能是正确的,但不知道如何将它用于列。我想得到

    a = np.array([[2,-1,0,2],
                  [3,-2,1,4],
                  [7,5.2,4,5]])
                 

【问题讨论】:

    标签: python sorting matrix numpy-ndarray


    【解决方案1】:

    axis=0 上尝试argsort 然后take_along_axis 将订单应用到a

    import numpy as np
    
    a = np.array([[7, -1, 0, 5],
                  [2, 5.2, 4, 2],
                  [3, -2, 1, 4]])
    
    s = np.argsort(abs(a), axis=0)
    a = np.take_along_axis(a, s, axis=0)
    print(a)
    
    

    a:

    [[ 2.  -1.   0.   2. ]
     [ 3.  -2.   1.   4. ]
     [ 7.   5.2  4.   5. ]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-29
      • 2021-03-08
      • 1970-01-01
      • 2012-08-17
      • 2012-04-22
      • 2016-09-27
      • 1970-01-01
      • 2023-02-02
      相关资源
      最近更新 更多