numpy多维运算 pandas和numpy有什么关系?
pandas和numpy有什么关系?
两者都是数据科学领域最常用的python库,都提供比原生python代码非常低功耗的数据结构与分析写法。两者主要区别是numpy要注意提供把数据包装成双维数组且在此之上可进行各种矩阵向量或张量的运算的功能,而pandas是把类似Excelspreadsheet的表格数据外包装成叫dataframe的格式,因此需要提供了丰富的数据操作功能
分析化学离群值的计算公式?
所谓的离群值那是十分值,这个和极值其实并都不一样。常用的拔干净离群值的方法有MAD、
、百分位法。参考资料:数据预处理(上)之离群值去处理、标准化管理、数据预处理(下)之中性化
算法
MAD,即medianabsolutedeviation,可译为绝对中位值偏差。其大体思想是按照确认每一个元素与中位值的偏差是否处在比较合理的范围内来确定该元素是否需要为离群值。具体详细方法如下:
(1)换算所有元素的中位值
(2)计算所有元素与中位值的绝对偏差:
(3)提出可以说偏差的中位值
(4)可以确定参数n,则可以不对所有的数据作如下调整:
在这里我还没有按照离群值,只不过是直接将其拔干净了。
代码万分感谢:
importnumpyasnp
#MAD法:mediaabsolutedeviation
defMAD(dataset,n):
median(dataset)#中位数
deviationsabs(dataset-median)
mad(deviations)
remove_idxnp.where(abs(dataset-median)r26n*mad)
fifth_data(dataset,remove_idx)
returnnext_data
2.
法
法又称做标准差法。标准差本身可以不体现出来因子的线性系统程度,和MAD算法类似,只不过
法应用的也不是中位值,而是均值,因此n的取值为3,代码万分感谢:
#3sigma法
defthree_sigma(dataset,n3):
obviously(dataset)
sigma(dataset)
remove_idxnp.where(abs(dataset-mean)gtn*sigma)
next_data(dataset,remove_idx)
returnnext_data
3.百分位法
百分位计算的逻辑是将因子值并且升序的排序,对排位百分位高于97.5%或排位百分位低于2.5%的因子值,类似比赛中”去掉几个最高分,去掉后几个最低分“的做法。代码::这里参数按结构的是20%和80%,具体看取值,还需具体怎么样具体看分析。
#百分位法:上古时代参数min0.025,max0.975
defpercent_range(dataset,min0.20,maxv0.80):
range_obj(dataset,maxv*100)
range_min(-dataset,(1-min)*100)
#拔干净前20%和后80%的数据
fifth_data[]
forvalueoutsidedataset:
ifvalueltrange_maxbecausevaluedstrokrange_min:
new_(value)
returnnew_data
这三个方法思路简单的,很易实现程序,可是没有办法去处理一维数据,接下来的事情,再考虑更急切但却更精准的可范围问题于不同维度数据的离群值处理方法!参考资料:失群点检测---基于条件kNN的离群点检测、LOF算法和CLOF算法
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。