将R sum()和order()语法转换为Python

将R sum()和order()语法转换为Python,python,r,sorting,vector,syntax,Python,R,Sorting,Vector,Syntax,我正在将一个R函数移植到Python中,但有一节我挂断了,因为我无法理解某些操作的行为。给我带来最大麻烦的是: if (RANKSTAT==1) { FDR <- (cumsum(post.H0[order(post.H0)]) / (1:length(post.H0))) FNR <- rev(cumsum((1-post.H0)[order(1-post.H0)])) / (Nb.Cell - 1:length(post.H0)) Se <- cumsum((1-post.

我正在将一个R函数移植到Python中,但有一节我挂断了,因为我无法理解某些操作的行为。给我带来最大麻烦的是:

if (RANKSTAT==1) {
FDR <- (cumsum(post.H0[order(post.H0)]) / (1:length(post.H0)))
FNR <- rev(cumsum((1-post.H0)[order(1-post.H0)])) / (Nb.Cell - 1:length(post.H0))
Se <- cumsum((1-post.H0)[order(post.H0)]) / (sum(1-post.H0))
Sp <- rev(cumsum(post.H0[order(1-post.H0)])) / (Nb.Cell - sum(1-post.H0))
}

if (RANKSTAT==2) {
FDR <- (cumsum(post.H0[order(LB,decreasing=TRUE)]) / (1:length(post.H0)))
FNR <- rev(cumsum((1-post.H0)[order(1-LB,decreasing=TRUE)])) / (Nb.Cell - 1:length(post.H0))
Se <- cumsum((1-post.H0)[order(LB,decreasing=TRUE)]) / (sum(1-post.H0))
Sp <- rev(cumsum(post.H0[order(1-LB,decreasing=TRUE)])) / (Nb.Cell - sum(1-post.H0))
}
请注意,post.H0和LB是R中的向量。sum1-post.H0中发生了什么,如何在python中复制它

另一个困难的方面是顺序函数。据我所知,Python的排序不能采用向量,所以顺序在内部做了什么,我可以复制?R文档不是很清楚,所以我仍然不理解函数的细微差别

我移植的整个脚本是

非常感谢你能给予的任何帮助。如果我遗漏了一条有助于解决此问题的信息,请发表评论


干杯

一般提示:如果您想将R代码移植到Python,应该使用。Numpy提供的数据类型比Python的内置列表等更类似于R。