Я не уверен, что я полностью понимаю z-оценку, но вы можете попробовать:
np.sort(arr,axis=1)
Пример 3-го ввода:
import numpy as np
rng_seed = 42 # control reproducibility
rng = np.random.RandomState(rng_seed)
arr=rng.randint(0,40,20).reshape(2,5,2)
Вход выглядит так:
[[[38 28]
[14 7]
[20 38]
[18 22]
[10 10]]
[[23 35]
[39 23]
[ 2 21]
[ 1 23]
[29 37]]]
Применение:
arr1=np.sort(arr,axis=1)
print (arr1)
Предоставляет отсортированный массив на основе столбцов в каждом экземпляре:
[[[10 7]
[14 10]
[18 22]
[20 28]
[38 38]]
[[ 1 21]
[ 2 23]
[23 23]
[29 35]
[39 37]]]
Если вы хотите вместо каждого ранга указать значение , попробуйте:
arr_rank = arr.argsort(axis=1)
print (arr_rank)
Вывод:
[[[4 1]
[1 4]
[3 3]
[2 0]
[0 2]]
[[3 2]
[2 1]
[0 3]
[4 0]
[1 4]]]