我们都知道,Numpy 是 Python 环境下的扩展程序库,支持大量的维度数组和矩阵运算;Pandas 也是 Python 环境下的数据操作和分析软件包,以及强大的数据分析库。二者在日常的数据分析中都发挥着重要作用,如果没有 Numpy 和 Pandas 的支持,数据分析将变得异常困难。但有时我们需要加快数据分析的速度,有什么办法可以帮助到我们吗?
在本文中,为我们介绍了 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷。
Numpy 的 6 种高效函数
首先从 Numpy 开始。Numpy 是用于科学计算的 Python 语言扩展包,通常包含强大的 N 维数组对象、复杂函数、用于整合 C/C++和 Fortran 代码的工具以及有用的线性代数、傅里叶变换和随机数生成能力。
除了上面这些明显的用途,Numpy 还可以用作通用数据的高效多维容器(container),定义任何数据类型。这使得 Numpy 能够实现自身与各种数据库的无缝、快速集成。
接下来一一解析 6 种 Numpy 函数。
argpartition()
借助于 argpartition(),Numpy 可以找出 N 个最大数值的索引,也会将找到的这些索引输出。然后我们根据需要对数值进行排序。
>>> x = np.array([12, 10, 12, 0, 6, 8, 9, 1, 16, 4, 6, 0])
>>> index_val = np.argpartition(x, -4)[-4:]
>>> index_val
array([1, 8, 2, 0], dtype=int64)
>>> np.sort(x[index_val])
array([10, 12, 12, 16])
allclose()
allclose() 用于匹配两个数组,并得到布尔值表示的输出。如果在一个公差范围内(within a tolerance)两个数组不等同,则 allclose() 返回 False。该函数对于检查两个数组是否相似非常有用。
>>> array1 = np.array([0.12,0.17,0.24,0.29])
>>> array2 = np.array([0.13,0.19,0.26,0.31])# with a tolerance of 0.1, it should return False:
>>> np.allclose(array1,array2,0.1)
False# with a tolerance of 0.2, it should return True:
>>> np.allclose(array1,array2,0.2)
True
clip()
Clip() 使得一个数组中的数值保持在一个区间内。有时,我们需要保证数值在上下限范围内。为此,我们可以借助 Numpy 的 clip() 函数实现该目的。给定一个区间,则