小编wed*_*edi的帖子

使用 numpy.argsort 的输出对 numpy.ndarray 的每一列进行排序

我想根据先前处理的参考数组对 numpy 2D 数组进行排序。我的想法是存储numpy.argsort我的参考数组的输出并使用它对其他数组进行排序:

In [13]: # my reference array
    ...: ref_arr = np.random.randint(10, 30, 12).reshape(3, 4)
Out[14]:
array([[12, 22, 12, 13],
       [28, 26, 21, 23],
       [24, 14, 16, 25]])

# desired output:
array([[12, 14, 12, 13],
       [24, 22, 16, 23],
       [28, 26, 21, 25]])
Run Code Online (Sandbox Code Playgroud)

我试过的:

In [15]: # store the sorting matrix
    ...: sm = np.argsort(ref_arr, axis=0)
Out[16]:
array([[0, 2, 0, 0],
       [2, 0, 2, 1],
       [1, 1, 1, 2]])
Run Code Online (Sandbox Code Playgroud)

但不幸的是,最后一步只适用于一维数组:

In [17]: ref_arr[sm]
---------------------------------------------------------------------------
IndexError                                Traceback …
Run Code Online (Sandbox Code Playgroud)

python arrays sorting numpy

6
推荐指数
1
解决办法
2616
查看次数

标签 统计

arrays ×1

numpy ×1

python ×1

sorting ×1