假设我有一个矩阵,它有N个项目和M列(其中M≤N)。我想知道每个N在M列中的平均排名。
我不是要做简单的逐行平均。我想表达的是:
arr = np.array([
[0,1],
[2,0],
[1,2]
])
我可以循环遍历每个N值并执行以下操作,但我想知道是否有更好的方法来处理这个问题。
for n in range(3):
np.where(arr==n)[0].mean()
编辑
抱歉,我的示例选择似乎引起了一些混淆。为了更好地说明,让我用字母代替矩阵中的值,因为这些值是标识符,而不是要进行计算的数字。
arr = np.array([
['A','B'],
['C','A'],
['B','C']
])
我不是要做简单的逐行平均。我想表达的是:
- A 的平均排名是 0.5 (0 + 1)/ 2
- B 的平均排名是 1.0 (0 + 2)/ 2
- C 的平均排名是 1.5 (1 + 2)/ 2
希望这样可以澄清我的请求。
np.mean(arr, axis=1)
吗? - undefinedarr
中等于某个数字n
的元素的索引进行平均计算:np.where(arr==n)[0].mean()
? - undefined