numpy:按索引对矩阵的元素进行排序

时间:2018-12-12 13:17:29

标签: css arrays numpy matrix indexing

我需要对矩阵进行排序,该矩阵由类似数组的

定义
example = np.array([[00, 01, 02, 03, 04],
               [10, 11, 12, 13, 14],
               [20, 21, 22, 23, 24],
               [30, 31, 32, 33, 34],
               [40, 41, 42, 43, 44]])

通过索引列表(如index = [1, 3])获得:

example = np.array([[11, 13, 10, 12, 14],
               [31, 33, 30, 32, 34],
               [01, 03, 00, 02, 04],
               [21, 23, 30, 22, 24],
               [41, 43, 40, 42, 44]])

其中第一个高左2x2子矩阵由位置[1,1],[1,3],[3,1]和[3,3]的元素组成。

我使用了for循环和numpy.extract(我认为这是不正确的),但是我确信存在最简单的方法。

1 个答案:

答案 0 :(得分:0)

permutation中创建所需的排列,然后使用:

e = example[:, permutation][permutation,:]

例如您的情况:

permutation = [1, 3, 0, 2, 4]