NumPy 入门二

Posted baobobbyzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy 入门二相关的知识,希望对你有一定的参考价值。

2-2NumPy实现的算术运算符

运算符 对应的通用函数 描述
+ np.add 加法运算(即 1 + 1 = 2
- np.subtract 减法运算(即 3 - 2 = 1
- np.negative 负数运算( 即 -2
* np.multiply 乘法运算(即 2 * 3 = 6
/ np.divide 除法运算(即 3 / 2 = 1.5
// np.floor_divide 地板除法运算(floor division, 即 3 // 2 = 1


** np.power 指数运算(即 2 ** 3 = 8
% np.mod / 余数( 即 9 % 4 = 1


正如 NumPy 能理解 Python 内置的运算操作, NumPy 也可以理解 Python 内置的绝对值函数: 对应的 NumPy 通用函数是 np.absolute, 该函数也可以用别名 np.abs 来访问:
NumPy 提供了大量好用的通用函数, 其中对于数据科学家最有用的就是三角函数。
NumPy 有非常快速的内置聚合函数可用于数组, 我们将介绍其中的一些。
2.4.1 数组值求和
先来看一个小例子, 设想计算一个数组中所有元素的和。 Python 本身可用内置的 sum 函数来
它的语法和 NumPy sum 函数非常相似, 并且在这个简单的例子中的结果也是一样的: In[3]: np.sum(L) 但是, 因为 NumPy sum 函数在编译码中执行操作, 所以 NumPy 的操作计算得更快一些:
2.4.2 最小值和最大值
同样, Python 也有内置的 min 函数和 max 函数, 分别被用于获取给定数组的最小值和最大值:
NumPy 对应的函数也有类似的语法, 并且也执行得更快: np.min(big_array), np.max(big_array)
聚合函数还有一个参数, 用于指定沿着哪个轴的方向进行聚合。 例如, 可以通过指定 axis=0 找到每一列的最小值: M.min(axis=0)
2-3NumPy中可用的聚合函数

函数名称 NaN安全版本 描述
np.sum np.nansum 计算元素的和
np.prod np.nanprod 计算元素的积
np.mean np.nanmean 计算元素的平均值
np.std np.nanstd 计算元素的标准差
np.var np.nanvar 计算元素的方差
np.min np.nanmin 找出最小值
np.max np.nanmax 找出最大值
np.argmin np.nanargmin 找出最小值的索引
np.argmax np.nanargmax 找出最大值的索引
np.median np.nanmedian 计算元素的中位数
np.percentile np.nanpercentile 计算基于元素排序的统计值
np.any N/A 验证任何一个元素是否为真
np

如要快速检查任意或者所有这些值是否为 True, 可以用(你一定猜到了) np.any() np.all()In[18]: # 有没有值大于8np.all() n p.any() 也可以用于沿着特定的坐标轴, 例如:

1 In[22]: # 是否每行的所有值都小于8?
2 np.all(x < 8, axis=1)
3 Out[22]: array([ True, False, True], dtype=bool)

现在为了将这些值从数组中选出, 可以进行简单的索引, 即掩码操作:

1 In[28]: x[x < 5]
2 Out[28]: array([0, 3, 3, 3, 2, 4])

NumPy中的快速排序: np.sortnp.argsort
尽管 Python 有内置的 sort sorted 函数可以对列表进行排序, 但是这里不会介绍这两个函数, 因为
NumPy np.sort 函数实际上效率更高。 默认情况下, np.sort 的排序算法是 快速排序, 其算法复杂度
[N log N], 另外也可以选择归并排序和堆排序。 对于大多数应用场景, 默认的快速排序已经足够高效
另外一个相关的函数是 argsort, 该函数返回的是原始数组排好序的索引值:
NumPy 排序算法的一个有用的功能是通过 axis 参数, 沿着多维数组的行或列进行排序, 例如:

 





以上是关于NumPy 入门二的主要内容,如果未能解决你的问题,请参考以下文章

算法竞赛入门码蹄集进阶塔335题(MT3330-3335)

科学计算基础软件包NumPy入门讲座:概述

OpenGL基础学习之二代码基本结构

为什么二代测序的原始数据中会出现Read重复现象?

三代测序入门

二代身份证号码编码规则