Numpy常用数学计算函数
Numpy 提供了常用的数学计算函数,通过这些函数我们可以进行三角函数的运算,指数和对数的运算,以及其他基本的数学运算。相比 Python 自带的 Math 库,Numpy 中数学函数最大的优势是可以对序列和数组进行操作。
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
1. 三角函数
下面主要列举常用的正弦、余弦和正切函数,以及角度和弧度的转换函数。Numpy 中的这些函数都可以传入列表类型的参数,自动对列表中的各个元素进行计算,不需要写循环。示例代码如下。In [1]: import numpy as np
首先,用 linspace 函数生成一个范围在0到π的等间距的 11 个数,然后调用sin函数计算它的正弦值。同理,还可以计算它们的余弦函数和正切函数。In [2]: np.sin(np.linspace(0,np.pi,11)) # 正弦函数 Out[2]: array([0.00000000e+00, 3.09016994e-01, 5.87785252e-01, 8.09016994e-01, 9.51056516e-01, 1.00000000e+00, 9.51056516e-01, 8.09016994e-01, 9.51056516e-01, 1.00000000e+00, 9.51056516e-01, 8.09016994e-01, 5.87785252e-01, 3.09016994e-01, 1.22464680e-16]) In [3]: np.cos(np.linspace(0,np.pi,11)) # 余弦函数 Out[3]: array([ 1.00000000e+00, 9.51056516e-01, 8.09016994e-01, 5.87785252e-01, 3.09016994e-01, 6.12323400e-17, -3.09016994e-01, -5.87785252e-01, -8.09016994e-01, -9.51056516e-01, -1.00000000e+00]) In [4]: np.tan(np.linspace(0,np.pi,11)) # 正切函数 Out[4]: array([ 0.00000000e+00, 3.24919696e-01, 7.26542528e-01, 1.37638192e+00, 3.07768354e+00, 1.63312394e+16, -3.07768354e+00, -1.37638192e+00, -7.26542528e-01, -3.24919696e-01, -1.22464680e-16])arcsin 是 sin 函数的反函数,该函数是将正弦值转换为弧度。我们还可以计算反余弦函数和反正切函数。
In [5]: np.arcsin(np.linspace(0,1,11)) # 反正弦函数 Out[5]: array([0. , 0.10016742, 0.20135792, 0.30469265, 0.41151685, 0.52359878, 0.64350111, 0.7753975 , 0.92729522, 1.11976951, 1.57079633]) In [6]: np.arccos(np.linspace(0,1,11)) # 反余弦函数 Out[6]: array([1.57079633, 1.47062891, 1.36943841, 1.26610367, 1.15927948, 1.04719755, 0.92729522, 0.79539883, 0.64350111, 0.45102681, 0. ]) In [7]: np.arctan(np.linspace(0,1,11)) # 反正切函数 Out[7]: array([0. , 0.09966865, 0.19739556, 0.29145679, 0.38050638, 0.46364761, 0.5404195 , 0.61072596, 0.67474094, 0.7328151 , 0.78539816])Numpy 中还提供了弧度和角度的转换函数。degrees 方法是将弧度转换为角度,radians 方法是将角度转换为弧度。
In [8]: np.degrees([np.pi,np.pi/2]) # 弧度转角度 Out[8]: array([180., 90.]) In [9]: np.radians([180,90]) # 角度转弧度 Out[9]: array([3.14159265, 1.57079633])
2. 指数与对数
Numpy 中同样提供的指数与对数运算函数。需要注意的是,在计算指数时只提供以自然常数和 2 为底的方法,而在计算对数时只提供以自然常数、2 和 10 为底的方法。示例代码如下。In [1]: import numpy as np In [2]: np.exp([1,2,3,4,5]) # 自然常数e的指数值 Out[2]: array([ 2.71828183, 7.3890561 , 20.08553692, 54.59815003, 148.4131591 ]) In [3]: np.exp2([1,2,3,4,5]) # 计算2的指数值 Out[3]: array([ 2., 4., 8., 16., 32.]) In [4]: np.log([1, np.e,]) # 计算以自然常数为底的对数 Out[4]: array([0., 1.]) In [5]: np.log2([1, np.e,]) # 计算以2为底的对数 Out[5]: array([0. , 1.44269504]) In [6]: np.log10([1, np.e,]) # 计算以10为底的对数 Out[6]: array([0. , 0.43429448])
3. 约数
Numpy 中求约数的方法。约数包括四舍五入、向 0 取整、向上取整和向下取整。示例代码如下。In [1]: import numpy as np In [2]: np.around([0.3, 1.7]) # 四舍五入 Out[2]: array([0., 2.]) In [3]: np.rint([-0.2,1.1]) # 四舍五入并保留整数部分 Out[3]: array([-0., 1.]) In [4]: np.fix([-1.6,1.7,1.2]) # 向0取整 Out[4]: array([-1., 1., 1.]) In [5]: np.floor([-1.6,1.7,1.2]) # 向下取整 Out[5]: array([-2., 1., 1.]) In [6]: np.ceil([-1.6,1.7,1.2]) # 向上取整 Out[6]: array([-1., 2., 2.])
声明:《Python系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。