NumPy 入门二
Posted baobobbyzhang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NumPy 入门二相关的知识,希望对你有一定的参考价值。
表2-2: NumPy实现的算术运算符
运算符 | 对应的通用函数 | 描述 |
+ | 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-3: NumPy中可用的聚合函数
函数名称 | 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]: # 有没有值大于8? np.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.sort和np.argsort
尽管 Python 有内置的 sort 和 sorted 函数可以对列表进行排序, 但是这里不会介绍这两个函数, 因为
NumPy 的 np.sort 函数实际上效率更高。 默认情况下, np.sort 的排序算法是 快速排序, 其算法复杂度
为 [N log N], 另外也可以选择归并排序和堆排序。 对于大多数应用场景, 默认的快速排序已经足够高效
另外一个相关的函数是 argsort, 该函数返回的是原始数组排好序的索引值:
NumPy 排序算法的一个有用的功能是通过 axis 参数, 沿着多维数组的行或列进行排序, 例如:
以上是关于NumPy 入门二的主要内容,如果未能解决你的问题,请参考以下文章