python 描述统计_Python统计学-004:描述统计-众数

众数:一组数据中出现次数最多的数值,一组数据可以不存在、存在一个或多个众数,众数用M表示。当所有数据出现次数都相同时,众数不存在。

实现思路

因为无法直接获知一个数组当中出现频率最高的数值,所以我们需要先统计数组中每一个数值的出现次数,而后再找出所有出现次数最高的数值。其中:

记录每个数值的出现次数,可以使用哈希表存储,变量值的值作为key,变量值出现的频数作为value。

若发现变量值列表中所有数值均只出现了一次,则返回空数组(众数不存在)。

实现代码

有效定义域:实数集

def descriptive_mode(list):

# [第1步] 获取 变量值列表 中 所有不重复的变量值

list_set=set(list);

# [第2步] 获取 所有不重复的变量值 在 变量值列表 中的 出现频数

frequency_dict={};

for i in list_set:

frequency_dict[i]=list.count(i)

# [第3步] 获取 变量值列表 中 出现频数 最高的数值的 出现频数

max_frequency=max(frequency_dict.values())

mode_list=[]

if max_frequency==1: # 若最高的 出现频数 为1,则没有众数

return mode_list;

# [第4步] 找出 所有不重复的变量值 中 出现频数 最高的变量值

for key,value in frequency_dict.items():

if value==max_frequency:

mode_list.append(key)

return mode_list

测试:

mode=descriptive_mode([3,1,2,1.5,1.5,1.5]);

print(mode)

结果:

1.5

代码解释

list_set=set(list) #将List转化为集合(可以去除重复元素)

for i in list_set #遍历list_set中的每一个元素

hashmap[key]=value #在hashmap中添加一个键值对,其中键为key,值为value

list.append(num) #将num添加到数组list

作者:长行

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
给我优化一下本段代码: // 设置表格1行列名 QStringList columnHeaders_strength; QStringList rowHeaders_strength; columnHeaders_strength << "值(兆帕)" << "位置(米)" << "备注"; rowHeaders_strength << "最大强度" << "最小强度" << "强度众数" << "强度均值"; // 配置表格1 modelStrength_ = new QStandardItemModel(); modelStrength_->setVerticalHeaderLabels(rowHeaders_strength); modelStrength_->setHorizontalHeaderLabels(columnHeaders_strength); ui->tableView_strength->setModel(modelStrength_); ui->tableView_strength->setAlternatingRowColors(true); ui->tableView_strength->verticalHeader()->setDefaultSectionSize(25); ui->tableView_strength->verticalHeader()->setVisible(true); ui->tableView_strength->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); // 添加初始内容 QStandardItem* itemIndex00 = new QStandardItem("maxStrength"); QStandardItem* itemIndex01 = new QStandardItem("maxStrengthDis"); QStandardItem* itemIndex02 = new QStandardItem("maxStrengthPS"); QStandardItem* itemIndex10 = new QStandardItem("minStrength"); QStandardItem* itemIndex11 = new QStandardItem("minStrengthDis"); QStandardItem* itemIndex12 = new QStandardItem("minStrengthPS"); QStandardItem* itemIndex20 = new QStandardItem("mostStrength"); QStandardItem* itemIndex21 = new QStandardItem("mostStrengthDis"); QStandardItem* itemIndex22 = new QStandardItem("mostStrengthPS"); QStandardItem* itemIndex30 = new QStandardItem("aveStrength"); QStandardItem* itemIndex31 = new QStandardItem("aveStrengthDis"); QStandardItem* itemIndex32 = new QStandardItem("aveStrengthPS"); itemIndex00->setTextAlignment(Qt::AlignCenter); itemIndex01->setTextAlignment(Qt::AlignCenter); itemIndex02->setTextAlignment(Qt::AlignCenter); itemIndex10->setTextAlignment(Qt::AlignCenter); itemIndex11->setTextAlignment(Qt::AlignCenter); itemIndex12->setTextAlignment(Qt::AlignCenter); itemIndex20->setTextAlignment(Qt::AlignCenter); itemIndex21->setTextAlignment(Qt::AlignCenter); itemIndex22->setTextAlignment(Qt::AlignCenter); itemIndex30->setTextAlignment(Qt::AlignCenter); itemIndex31->setTextAlignment(Qt::AlignCenter); itemIndex32->setTextAlignment(Qt::AlignCenter); modelStrength_->setItem(0, 0, itemIndex00); modelStrength_->setItem(0, 1, itemIndex01); modelStrength_->setItem(0, 2, itemIndex02); modelStrength_->setItem(1, 0, itemIndex10); modelStrength_->setItem(1, 1, itemIndex11); modelStrength_->setItem(1, 2, itemIndex12); modelStrength_->setItem(2, 0, itemIndex20); modelStrength_->setItem(2, 1, itemIndex21); modelStrength_->setItem(2, 2, itemIndex22); modelStrength_->setItem(3, 0, itemIndex30); modelStrength_->setItem(3, 1, itemIndex31); modelStrength_->setItem(3, 2, itemIndex32);
最新发布
07-16

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值