R和python语言如何求平均值,中位数和众数

均值是通过取数值的总和并除以数据序列中的值的数量来计算。

R语言平均值公式:

mean(x, trim = 0, na.rm = FALSE, ...)
#
x - 是输入向量。trim - 用于从排序的向量的两端删除一些观测值。na.rm - 用于从输入向量中删除缺少的值

> x<-c(-22,-13,2,45,56,73,21,44,NA)
> result.mean<-mean(x,rim=0.2,na.rm=TRUE)#rim=0.2就是对x其中的向量排序,然后去掉左边和右边的各2个值,na.rm=TRUE就是去掉缺值
> result.mean
[1] 25.75

python语言平均值公式:

mean(a, axis = None) : 同理,计算平均值

In [14]: import pandas as pd

In [15]: import numpy as np

In [16]: a=pd.Series([1,2,3,5])

In [17]: np.mean(a)
Out[17]: 2.75

R语言求中位数:

median(x, na.rm = FALSE)#x - 是输入向量。na.rm - 用于从输入向量中删除缺少的值

> x<-c(-22,-13,2,45,56,73,21,44,NA)
> median.result<-median(x)
> median.result
[1] NA
> median.result<-median(x,na.rm=TRUE)
> median.result
[1] 32.5

PYTHON语言求中位数:

> x<-c(-22,-13,2,45,56,73,21,44,NA)
> median.result<-median(x)
> median.result
[1] NA
> median.result<-median(x,na.rm=TRUE)
> median.result
[1] 32.5

R语言求众数:

R没有标准的内置函数来计算众数。因此,我们将创建一个用户自定义函数来计算R中的数据集的众数。该函数将向量作为输入,并将众数值作为输出。

getmode <- function(v) {
   uniqv <- unique(v)
   uniqv[which.max(tabulate(match(v, uniqv)))]
}
代码如下:

> getmode <- function(v) {
+ uniqv <- unique(v)
+ uniqv[which.max(tabulate(match(v, uniqv)))]
+ }
> v<-c(1,2,3,4,52,45,22,2,4,2,2,4,5,5)
> result<-getmode(v)
> result
[1] 2

PYTHON求众数:

In [26]: a=np.array([1,2,3,4,5,22,3,4,5,5,4,4,4,])

In [27]: counts=np.bincount(a)

In [28]: np.argmax(counts)
Out[28]: 4

原文地址:https://www.cnblogs.com/ConnorShip/p/9817652.html