python求平均值函数_python 求均值、中位数、众数的方法

看了n久的python,可当解决实际项目问题去搜寻众多API解释时,使用何种方法合适,还是毫无方向。度娘还是最好的帮手,找到目标博案后再结合原版的API解释去理解,更为直观有效些。

今天记录一下求均值、中位数、众数的方式

nums = [0,4,5,8,8]

#求均值和中位数均可以使用numpy库的方法:

import numpy as np

#均值

np.mean(nums)

#中位数

np.median(nums)

#求均值和中位数均也可以使用panda库的方法:

import panda as pd

gm = pd.Series(data=nums)

#均值

gm.mean()

#中位数

gm.median()求众数方法一:

在numpy中没有直接的方法,但是也可以这样实现:

import numpy as np

#获取平铺后每个索引位置值在原始数列中出现的次数

counts = np.bincount(nums)

#返回众数 返回最大值在数列中的索引位置

np.argmax(counts)

其中np.bincount方法返回了一个长度为nums最大值的列表

即 [0,4,5,8,8] ——> bincount 返回 长度为8的列表

[1,0,0,0,1,1,0,0,2] 也就是把0-8平铺到列表里,然后对0-8的每个数字计数

此处0、4、5各为1次,所以在返回的列表内的对应索引位置显示为1

8为2次,即索引8的位置显示2

其中np.argmax方法返回数列中最大值的索引位置。

即[1,0,0,0,1,1,0,0,2] ——> 最大值2的索引位置为8

求众数方法二——直接利用scipy下stats模块:

from scipy import stats

nums = [0,4,5,8,8]

stats.mode(nums)[0][0]

求众数方法三——panda下mode()方法直接获取众数:

import pandas as pd

v = [3,5,6,2,6,9]

gm = pd.Series(data=v)

gm.mode()[0]

这里都运用了第三方的统计数据类包 panda、scipy、numpy

对于数据分析师而言都是必须掌握的工具包,api繁多,任重而道远

笔者还未接触过scipy,此处是对scipy的浅显的理解:

scipy包含致力于科学计算中常见问题的各个工具箱。它的不同子模块相应于不同的应用。像插值,积分,优化,图像处理,统计,特殊函数等等。

scipy是Python中科学计算程序的核心包; 它用于有效地计算numpy矩阵,来让numpy和scipy协同工作。

下载安装:Mac 终端

命令:pip install wheel

命令:shenjiaming$ sudo pip3 install -U numpy scipy

  • 10
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值