此问题在此处已有答案:
Sorting a 2D numpy array by multiple axes(7个答案)
4天前关闭。
numpy中是否有一个方法可以让我按升序对这些3d向量进行排序?
例如:我有下面的输入数组,我想要下面的输出:
input_arr = np.array( [
[[255,0,3],
[255,4,100],
[255,2,3],
[255,3,3],
[0,1,3],
] ]
, dtype='uint8')
# Sort input_arr to produce the below
output_arr = np.array( [
[[0,1,3],
[255,0,3],
[255,2,3],
[255,3,3],
[255,4,100],
] ]
, dtype='uint8')
我试过下面的方法,但它没有产生我上面想要的结果,而是产生了下面的结果。
output_arr2 = np.sort( input_arr, axis=0)
# Results in the below
[[[255 0 3]
[255 4 100]
[255 2 3]
[255 3 3]
[ 0 1 3]]]
1条答案
按热度按时间gwbalxhn1#
这段代码接受一个二维输入数组input_arr,根据行中的值按升序对每个二维子数组的行进行排序,并将排序后的数组存储在一个新的二维NumPy数组output_arr中。
下面是代码的一步一步的分解:
1.Map(λ x:排序(x,键=lambda行:tuple(rows)),input_arr)将第2步中的lambda函数应用于input_arr中的每个子数组,从而得到一个可迭代的排序子数组。
总之,这段代码接受一个二维输入数组,根据每行中的值按升序对每个子数组进行排序,并返回一个新的二维NumPy数组和排序后的子数组。