Python手把手教你学Numpy——那些常用的API们
今天是Numpy专题的第5篇文章 , 我们来继续学习Numpy当中一些常用的数学和统计函数 。
基本统计方法
在日常的工作当中 , 我们经常需要通过一系列值来了解特征的分布情况 。 比较常用的有均值、方差、标准差、百分位数等等 。 前面几个都比较好理解 , 简单介绍一下这个百分位数 , 它是指将元素从小到大排列之后 , 排在第x%位上的值 。 我们一般常用的是25% , 50%和75%这三个值 , 通过这几个值 , 我们很容易对于整个特征的分布有一个大概的了解 。
前面三个指标:均值、方差、标准差都很好理解 , 我们直接看代码就行 。
本文插图
median和percentile分别是求中位数与百分位数 , 它们不是Numpy当中array的函数 , 而是numpy的库函数 。 所以我们需要把array当做参数传入 。 percentile这个函数还需要额外传入一个int , 表示我们想要得到的百分位数 , 比如我们想要知道50%位置上的数 , 则输入50 。
本文插图
除了这些之外 , 我们还会经常用到sum , min , max , argmin , argmax这几个函数 。 sum , min , max很好理解 , argmin和argmax的意思是获取最小值和最大值的索引 。
本文插图
这里返回的索引有点奇怪 , 和我们想的不同 , 居然不是一个二维的索引而是一维的 。 实际上numpy的内部会将高维数组转化成一维之后再进行这个操作 , 我们可以reshape一下数组来进行验证:
本文插图
这些只是api的基本用法 , numpy当中支持的功能不仅如此 。 我们观察一下这些函数会发现 , 它们的作用域都是一组数据 , 返回的是一组数据通过某种运算得到的结果 。 举个例子 , 比如sum , 是对一组数据的价格 。 std计算的是一组数据的标准差 , 这样的函数我们称为聚合函数 。
numpy当中的聚合函数在使用的时候允许传入轴这个参数 , 限制它聚合的范围 。 我们通过axis这个参数来控制 , axis=0表示对列聚合 , axis=1表示对行聚合 。 我们死记的话总是会搞混淆 , 实际上axis传入的也是一个索引 , 表示第几个索引的索引 。 我们的二维数组的shape是[行 ,列] , 其中的第0位是行 , 第1位是列 , 可以认为axis是这个索引向量的一个索引 。
我们可以来验证一下:
本文插图
可以看到axis=0和axis=1返回的向量的长度是不同的 , 因为以列为单位聚合只有4列 , 所以得到的是一个1 x 4的结果 。 而以行为单位聚合有5行 , 所以是一个1 x 5的向量 。
除了上面介绍的这些函数之外 , 还有cumsum和cumprod这两个api 。 其中cumsum是用来对数组进行累加运算 , 而cumprod是进行的累乘运算 。 只是在实际工作当中 , 很少用到 , 我就不展开细讲了 , 感兴趣的同学可以查阅api文档了解一下 。
bool数组的方法
我们之前在Python的入门文章当中曾经提到过 , 在Python中True和False完全等价于1和0 。 那么在上面这些计算的方法当中 , 如果存在bool类型的值 , 都会被转化成1和0进行的计算 。
我们灵活运用这点会非常方便 , 举个例子 , 假设我们要统计一批数据当中有多少条大于0 。 我们利用sum会非常方便:
推荐阅读
- 最前线|中年女性怎么穿才算高级?俞飞鸿来教你,身穿一袭黑裙优雅大方
- 游戏小解说|收藏好,股价腰斩的票你会去买吗?现在教你一招超跌股的选股技巧
- 五花肉|保证让你一看会做,出锅满屋飘香,馋哭了教你做条子肉
- 豆娘厨房|玉米不要直接煮着吃了,宝妈教你小诀窍,玉米香浓好吃还不凹陷
- 吃火锅|吃火锅先肉后菜,这些年我们竟然吃错了?医生教你这样吃,健康又美味!
- 悠家娱乐 VS Code 中的 Python 体验,#新闻拍一拍# 微软推出 Pylance,改善
- 喜欢吃肉肉|天气太热没胃口?教你2道凉拌菜,鲜香清爽,开胃解腻,关键简单
- 穆老谈科技|想吃酸菜鱼不用买,教你在家做,简单卫生又营养,一吃停不下来
- 北青网综合|夏天中医教你3大养生秘诀,不妨一试
- 漫漫笑|我再教你几手擒拿,病人就跑不了了,幽默笑话:没关系
