gpt4 book ai didi

python - 按数组列表中的位置排列每个数字 - Python

转载 作者:行者123 更新时间:2023-11-28 18:31:59 25 4
gpt4 key购买 nike

我有一个数组列表,我想根据列表中其他数组中位置相似的数字对这些数字进行排名。

x = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]

我尝试了以下方法,它根据所有数字对每个数字进行了排名,并且最小的数排在第1位

scipy.stats.rankdata(x)

array([ 9.,5.5,1.,2., 3.,4.,5.5,7.,8. ])

我想对排名第 1 的最大数字进行排名,并且每个数字仅根据列表中每个数组中位于相同位置的数字进行排名。

这是我需要的输出。

[[1,2,3]
[3,3,2],
[2,1,1]]

最佳答案

你也可以使用魔法numpy.argsort

import numpy as np

x = np.array([[12,7,3],
[4 ,5,6],
[7 ,8,9]])

y = x.shape[0] - np.argsort(np.argsort(x, axis = 0), axis = 0)

输出:

In [111]: y
Out[111]:
array([[1, 2, 3],
[3, 3, 2],
[2, 1, 1]])

关于python - 按数组列表中的位置排列每个数字 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36184572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com