相关疑难解决方法(0)

使用Python/NumPy对数组中的项目进行排名

我有一个数字数组,我想创建另一个数组,表示第一个数组中每个项目的排名.我正在使用Python和NumPy.

例如:

array = [4,2,7,1]
ranks = [2,1,3,0]
Run Code Online (Sandbox Code Playgroud)

这是我提出的最佳方法:

array = numpy.array([4,2,7,1])
temp = array.argsort()
ranks = numpy.arange(len(array))[temp.argsort()]
Run Code Online (Sandbox Code Playgroud)

有没有更好/更快的方法避免两次排序数组?

python sorting numpy

82
推荐指数
6
解决办法
7万
查看次数

在基本python中等效Numpy.argsort()?

在那里,做关于Python的内置函数python.array什么argsort()上呢numpy.array

python numpy

47
推荐指数
3
解决办法
3万
查看次数

R的排名和顺序

我无法理解R函数rank和R函数之间的区别order.他们似乎产生相同的输出:

> rank(c(10,30,20,50,40))
[1] 1 3 2 5 4
> order(c(10,30,20,50,40))
[1] 1 3 2 5 4
Run Code Online (Sandbox Code Playgroud)

有人可以为我阐明这个吗?谢谢

sorting r

43
推荐指数
5
解决办法
9万
查看次数

对列表进行排序,然后按原始顺序给出元素的索引

比方说,我有一个n个数字的数组[1,4,6,2,3].排序的数组是[1,2,3,4,6],并且旧数组中这些数字的索引是0,3,4,1和2.给定n个数组的数组,找到这个索引数组的最佳方法是什么?

我的想法是为每个元素运行订单统计信息.但是,由于我必须多次重写此功能(比赛中),我想知道是否有一个简短的方法来做到这一点.

python sorting list

7
推荐指数
1
解决办法
7160
查看次数

给定一个"混乱"列表L,得到一个列表,其中每个元素是L的相应元素的索引,如果L被排序

期望的输出

我想要一个函数返回一个列表,这样,给定一个"混乱"列表l,每个元素是相应元素的索引l,如果l被排序.(我没有想到一种不太复杂的说法,对不起.)

例子

f([3,1,2]) = [2,0,1]

f([3,1,2,2,3])= [3,0,1,2,4],因为输入已排序[1,2,2,3,3].

(这对某些统计数据计算很有用.)

我的尝试

我想出了一种方法来做这个功能,但这是python - 似乎应该有一个单行来做这个,或者至少是一个更清洁,更清晰的方式.

def getIndiciesInSorted(l):
    sortedL = sorted(l)
    outputList = []
    for num in l:
        sortedIndex = sortedL.index(num)
        outputList.append(sortedIndex)
        sortedL[sortedIndex] = None
    return outputList

l=[3,1,2,2,3] 
print getIndiciesInSorted(l)
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能更简洁地写出来呢?有清晰易读的清单解决方案吗?

python

4
推荐指数
1
解决办法
263
查看次数

标签 统计

python ×4

sorting ×3

numpy ×2

list ×1

r ×1