python的百分位函数 numpy 百分位数

python里的%是什么意思?在屏幕输出的命令中python的百分位函数 , %是格式符号,%d代表整数,%s代表字符
单独看%,是一个运算符号,求余数
1%5 = 1, 2%5 = 2, 3%5 = 3, 4%5 = 4, 5%5 = 0
另外一个简单的用途是,通过运算结果判断一个数是否能被另外一个数整除
比如python的百分位函数:
a = 'test'
print 'it is a %s' %(a)
打印的结果就是 it is a test 。
函数
Python的函数支持递归、默认参数值、可变参数 , 但不支持函数重载 。为了增强代码的可读性 , 可以在函数后书写“文档字符串”(Documentation Strings , 或者简称docstrings),用于解释函数的作用、参数的类型与意义、返回值类型与取值范围等 。可以使用内置函数help()打印出函数的使用帮助 。比如:
def randint(a, b):
... "Return random integer in range [a, b], including both end points."...
help(randint)
Help on function randint in module __main__:
randint(a, b)
Return random integer inrange[a, b], including both end points.
以上内容参考:百度百科-Python
聊聊python的分位数在日常的数据分析中,分位数 是非常重要的一环 , 在探查数据分布,定义指标中都必不可缺 。但 python 里的分位数计算却潜藏了一些坑点,特分享 。
我们先看看百度百科的 分位数 定义:
正如上文所言 , 四分位数 就是将数据从小到大排成4等分,然后取出3个分割点的数值 。百分位数则以此类推,通过分位数 我们可以对数据的分布有更深的了解:
分位数 的定义是很容易理解的 , 但大部分人不知道的是 , 分位数的计算方法有两种:
我们依旧以 四分位数 为例
三种方法各有利弊,但结果都可能存在差距,需要与需求方仔细确认到底是哪个计算方法 。
能满足4分位计算的函数主要有2个:numpy 的 percentile 方法 和 pandas 的 quantile 方法。但他们的计算方法都是 1+(n-1)方法,我们看个例子:
既然没有现成的方法,我们就手写一个 n 的方法 。
百分位的计算是非常常见的数据分析需求,但在实际使用时并没有那么的简单,专业的统计逻辑和""我们以为""的逻辑并不尽然相同 。需时时谨慎,校验数据 。
如何计算百分位数与Python / numpy的1. 你可能会喜欢SciPy的统计软件包 。它有百分函数你之后,许多其他统计好吃的东西 。
此票证相信他们不会被整合percentile()到numpy的很快 。
2.
顺便说一句 , 有百分函数的纯Python,万一一个不希望依赖于SciPy的 。具体函数如下复制:
## {{{CodeGo.net(r1)
import math
import functools
def percentile(N, percent, key=lambda x:x):
"""
Find the percentile of a list of values.
@parameter N - is a list of values. Note N MUST BE already sorted.
@parameter percent - a float value from 0.0 to 1.0.
@parameter key - optional key function to compute value from each element of N.
@return - the percentile of the values
"""
if not N:
return None
k = (len(N)-1) * percent
f = math.floor(k)
c = math.ceil(k)
if f == c:
return key(N[int(k)])
d0 = key(N[int(f)]) * (c-k)
d1 = key(N[int(c)]) * (k-f)
return d0+d1
# median is 50th percentile.
median = functools.partial(percentile, percent=0.5)
## end ofCodeGo.net}}}
3.
检查scipy.stats模块:
scipy.stats.scoreatpercentile
4.
import numpy as np
a = [154, 400, 1124, 82, 94, 108]
print np.percentile(a,95) # gives the 95th percentile
5.
百分看到定义预期结果从提供的列表,低于该值的百分之P被发现的价值 。为了得到这一点,你一个简单的函数 。

推荐阅读