J'ai le code R suivant et j'ai besoin de le convertir en python et de l'exécuter en environnement python, en gros j'ai fait ça avec le module rpy2, mais ça a l'air d'être terne avec python mêmes choses, donc quelqu'un pourrait-il trouver une meilleure façon de réécrire le code R suivant en un script python équivalent avec le module rpy2?Convertir un code R en script 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
}
}
Le paquet largement utilisé numpy fournit la fonction médiane (numpy.median) alors ne perdez pas de temps à réinventer la roue! – ThR37
Ai-je raté quelque chose? En supposant que x est une liste de nombres, (x - median (x)), Python ne fera pas de maths vectorisées. – Mark
@Mark oui mais c'est le cas! Si x est un tableau numpy, vous pouvez écrire x-np.median (x). Sinon, vous pouvez utiliser la compréhension de la liste: median ([abs (val-median (x)) pour val en x]) – ThR37