首页 > 解决方案 > 如何使用两个键对 3d 数组进行排序

问题描述

给定以下数组:

import numpy as np
import random
np.random.seed(1)

arr_3d = np.random.randint(0, 100, size=(5, 4, 3))

我需要 5 次排序操作(沿最长轴,此数组中的大小为“5”)。每个排序操作需要两个键,属于第三个切片中的两个索引。

arr_3d[:,:,0] #-> first sort key
arr_3d[:,:,2] #-> second sort key (in case there's a tie in the first key)

我已经能够生成将每个“行”分别排序的索引,但我似乎无法将索引转换为 3d 数组。

sorted_indexes_0=arr_3d[:,:,0 ].argsort()
sorted_indexes_2=arr_3d[:,:,2 ].argsort()

标签: pythonnumpysortingnumpy-ndarray

解决方案


推荐阅读