我得到了下面的R代码,我需要将它转换为python并在python环境下运行它,基本上我已经用rpy2模块完成了它,但是它看起来有点枯燥,同样的事情,所以有人可以找到一种更好的方法来将下面的R代码改写为与rpy2模块等效的Python脚本?将R代码转换为Python脚本
mymad <- function (x)
{
center <- median(x)
y <- abs(x - center)
n <- length(y)
if (n == 0)
return(NA)
half <- (n + 1)/2
1.4826 * if (n%%2 == 1) {
sort(y, partial = half)[half]
}
else {
sum(sort(y, partial = c(half, half + 1))[c(half, half +
1)])/2
}
}
广泛使用的包numpy的提供位机能(numpy.median),所以不要浪费时间重新发明轮子! – ThR37 2010-08-05 16:15:58
我错过了什么吗?假设x是一个数字列表,(x - median(x)),Python不会做矢量数学。 – Mark 2010-08-05 16:16:23
@标志是,但numpy做到了!如果x是一个numpy数组,则可以编写x-np.median(x)。否则,你可以使用列表理解:median([abs(val-median(x))for val in x]) – ThR37 2010-08-05 16:17:58