前言

中位数是一个可将数值集合划分为相等的上下两部分的一个数值。如果列表数据的个数是奇数,则列表中间那个数据就是列表数据的中位数;如果列表数据的个数是偶数,则列表中间那2个数据的算术平均值就是列表数据的中位数。在这个任务里,你将得到一个含有自然数的非空数组(X)。你必须把它分成上下两部分,找到中位数。

输入: 一个作为数组的整数(int)列表(list)的。

输出: 数组的中位数(int, float).

示例

get_median([1, 2, 3, 4, 5]) == 3

get_median([3, 1, 2, 5, 3]) == 3

get_median([1, 300, 2, 200, 1]) == 2

get_median([3, 6, 20, 99, 10, 15]) == 12.5

如何使用:中位数在概率论和统计学中得到应用,它偏态分布中有显著的价值。例如:我们想从一组数据中知道人们的平均财富 -- 100人一个月收入100美元,10人一个月收入1,000,000美元。如果我们算平均值,得到的是91000美元。这是一个完全没有向我们展示真实情况的奇怪的值。所以在这种情况下,中位数会给我们更有用的值和较好的描述。

前提:1 < len(data) ≤ 1000 all(0 ≤ x < 10 ** 6 for x in data)

普通方法:

对列表进行排序,针对列表长度是奇数还是偶数的不同情况,计算中位数。

def get_median(data):

data = sorted(data)

size = len(data)

if size % 2 == 0: # 判断列表长度为偶数

median = (data[size//2]+data[size//2-1])/2

data[0] = median

if size % 2 == 1: # 判断列表长度为奇数

median = data[(size-1)//2]

data[0] = median

return data[0]

最佳方法:

这个解决方法非常巧妙,它利用了取反数和为1的特性,通过列表负索引来获得列表中位数。

对 return (data[half] + data[~half]) / 2的解释:

排序后得到序列[1,2,3,4,5,6],其列表长度为偶数,中位数由列表中间两位元素3(索引为2),4(索引为3)决定。而元素4的负索引为-3,正好是索引2的取反数。

排序后得到序列[1,2,3,4,5],其列表长度为奇数,中位数由列表中间元素3(索引为2,负索引为-3)决定。仍然符合代码。

def get_median(data):

data.sort()

half = len(data) // 2

return (data[half] + data[~half]) / 2

更多Python如何获取列表(List)的中位数相关文章请关注PHP中文网!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python怎么读取列表-Python如何获取列表(List)的中位数相关推荐

  1. python怎么读取文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

  2. python怎么读取文件-python怎么读取文件内容

    Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError的错误. 完整的语法格式为:(推荐学习:Pytho ...

  3. python文件读取输出-Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  4. python文件读取数据-Python从文件中读取数据

    一.读取整个文件内容 在读取文件之前,我们先创建一个文本文件resource.txt作为源文件. resource.txt my name isjoker, I am18years old, How ...

  5. python无法读取文件-Python读取文件

    ========== 本文记录使用Python在读取文件时的一些心得体会. 不能decode bytes 使用open方法读取文件时,经常会遇到这样的问题: UnicodeDecodeError: ' ...

  6. python批量读取grib_windows python读取grib2数据

    一.环境准备 (1).python3环境 (3).wgirb2工具(用于读取grib2文件),下载地址:ftp://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2 二.环境测试 ...

  7. python如何取map中的元素_在Python中使用map()获取列表元素在字符串中存在的次数...

    下面是对goalPost移动的一个响应("我可能需要regex,因为在不久的将来我将需要单词分隔符"): 此方法解析文本一次,以获得所有"单词"的列表.每个单词 ...

  8. python字典读取特定值_python 获取字典特定值对应的键的实现

    对于字典,通过"键"获得"值"非常简单,但通过"值"获得"键"则需绕些弯子. 一.通用:自行定义函数方式 假设: 输入: ...

  9. python csv读取-使用python获取csv文本的某行或某列数据的实例

    站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存 ...

  10. python怎么读取github_六行代码获取Github排名前10的Python项目

    六行代码获取Github排名前10的Python项目 Github开放了不少API.下面是对这些API的一个使用. # 获取返回信息 import requests as r url="ht ...

最新文章

  1. 海思3559A上编译libjpeg-turbo源码操作步骤
  2. WPF下可编辑Header的Tab控件实现
  3. iOS js oc相互调用(JavaScriptCore)(二)
  4. 2017-2018-2 20179204《网络攻防实践》第八周学习总结
  5. 在ubuntu中使用MYBASE
  6. 产品经理思维模型:传播三大原理
  7. Win10系统怎么映射网络驱动器?
  8. rj45管脚定义_RJ45接口定义
  9. 植物大战僵尸:游戏中的“修改器【Python】”一定是作弊?善用增加趣味性!
  10. JAVA设计模式-11-代理模式(动态)(一)
  11. 2021-11-06大数据学习日志——数据埋点+网络爬虫——数据提取
  12. gis统计百分比_详细讲解ArcGIS数据统计及字段计算
  13. vue 用key拿对象value_基于vue--key值的特殊用处详解
  14. 微信内测新功能(深度清理),瞬间释放几个G内存!
  15. 笔记本键盘 Fn 键 的锁定与解锁
  16. 【无标题】ChatGPT的官网是多少,在国内能使用吗
  17. C语言读书1000字报告,c语言实验一实验报告1000字范文.docx
  18. Python/numpy 设置数组某一整行列的值为0/1 修改数组行列设置为特定值
  19. 智能硬件蓝牙配网方案概要
  20. 谷歌学术里面的代码查找

热门文章

  1. 【编程题目】调整数组顺序使奇数位于偶数前面
  2. NOI2004 郁闷的出纳税——SBT应用
  3. Oracle根据日期计算某月的天数
  4. WebForm实现增删改查
  5. node+ejs模板引擎的应用
  6. 异常处理第三讲,SEH(结构化异常处理),异常展开问题
  7. 太白---落燕纷飞第一重 Android单元測试Instrumentation和irobotium
  8. $each $position $sort $slice
  9. .NET Core的日志[4]:将日志写入EventLog
  10. Android运行出现“java.io.IOException: 您的主机中的软件放弃了一个已建立的连接。”...