Python|手把手教你学Numpy——那些常用的API们( 二 )


本文插图

bool数组除了可以应用上面这些基本的运算api之外 , 还有专门的两个api , 也非常方便 。 一个叫做any , 一个叫做all 。 any的意思是只要数组当中有一个是True , 那么结果就是True 。 可以认为是Is there any True in the array的意思 , 同样 , all就是说只有数组当中都是True , 结果才是True 。 对应的英文自然是Are the values in the array all True 。
这个只要理解了 , 基本上很难忘记 。
Python|手把手教你学Numpy——那些常用的API们
本文插图

排序
Python原生的数组可以排序 , numpy当中的数组自然也不例外 。 我们只需要调用sort方法就可以排序了 , 不过有一点需要注意 , numpy中的sort默认是一个inplace的方法 。 也就是说我们调用完了sort之后 , 原数组的值就自动变化了 。

Python|手把手教你学Numpy——那些常用的API们
本文插图

如果写成了arr = arr.sort()会得到一个None , 千万要注意 。

Python|手把手教你学Numpy——那些常用的API们
本文插图

同样 , 我们也可以通过传入轴这个参数来控制它的排序范围 , 可以做到对每一列排序或者是对每一行排序 , 我们来看个例子:

Python|手把手教你学Numpy——那些常用的API们
本文插图

这个是对列排序 , 如果传入0则是对行排序 , 这个应该不难理解 。
集合api
numpy当中还提供了一些面向集合的api , 相比于针对各种计算的api , 这些方法用到的情况比较少 。 常用的一般只有unique和in1d 。
unique顾名思义就是去重的api , 可以返回一维array去重且排序之后的结果 。 我们来看个例子:

Python|手把手教你学Numpy——那些常用的API们
本文插图

它等价于:
set(sorted(arr))
in1d是用来判断集合内的元素是否在另外一个集合当中 , 函数会返回一个bool型的数组 。 我们也可以来看个例子:

Python|手把手教你学Numpy——那些常用的API们
本文插图
【Python|手把手教你学Numpy——那些常用的API们】

除了这两个api之外 , 还有像是计算并集并排序的union1d , 计算差集的setdiff1d , 计算两个集合交集并排序的intersect1d等等 。 这些api的使用频率实在是不高 , 所以就不赘述了 。 用到的时候再去查阅即可 。
总结
今天我们聊了numpy当中很多常用的计算api , 这些api在我们日常做机器学习和数据分析的时候经常用到 。 比如分析特征分布的时候 , 如果数据量很大是不适合作图或者是可视化观察的 。 这个时候可以从中位数、均值、方差和几个关键百分位点入手 , 再比如在我们使用softmax多分类的时候 , 也会用到argmax来获取分类的结果 。
总之 , 今天的内容非常关键 , 在numpy整体的应用当中占比很高 , 希望大家都能熟悉它们的基本用法 。 这样即使以后忘记 , 用到的时候再查阅也还来得及 。
今天的文章就是这些 , 如果喜欢本文 , 可以的话请点个关注 , 给我一点鼓励 , 也方便获取更多文章 。
本文始发于公众号:TechFlow


推荐阅读