16.NumPy数学函数

NumPy 中包含了大量的数学函数,它们用于执行各种数学运算,其中包括三角函数、舍入函数等等。下面对它们做详细讲解。

三角函数

NumPy 中提供了用于弧度计算的的 sin()(正弦)、cos()(余弦)和 tan()(正切)三角函数。

示例如下:

  1. import numpy as np
  2. arr = np.array([0, 30, 60, 90, 120, 150, 180])
  3. #计算arr数组中给定角度的三角函数值
  4. #通过乘以np.pi/180将其转换为弧度
  5. print(np.sin(arr * np.pi/180))
  6. print(np.cos(arr * np.pi/180))
  7. print(np.tan(arr * np.pi/180))

输出结果如下:

sin()正弦值:
[0.00000000e+00 5.00000000e-01 8.66025404e-01 1.00000000e+00
8.66025404e-01 5.00000000e-01 1.22464680e-16]
cos()余弦值:
[ 1.00000000e+00  8.66025404e-01  5.00000000e-01  6.12323400e-17
-5.00000000e-01 -8.66025404e-01 -1.00000000e+00]
tan()正切值:
[ 0.00000000e+00  5.77350269e-01  1.73205081e+00  1.63312394e+16
-1.73205081e+00 -5.77350269e-01 -1.22464680e-16]

除了上述三角函数以外,NumPy 还提供了 arcsin,arcos 和 arctan 反三角函数。

若要想验证反三角函数的结果,可以通过 numpy.degrees() 将弧度转换为角度来实现,示例如下:

  1. import numpy as np
  2. arr = np.array([0, 30, 60, 90])
  3. #正弦值数组
  4. sinval = np.sin(arr*np.pi/180)
  5. print(sinval)
  6. #计算角度反正弦,返回值以弧度为单位
  7. cosec = np.arcsin(sinval)
  8. print(cosec)
  9. #通过degrees函数转化为角度进行验证
  10. print(np.degrees(cosec))
  11. #余弦值数组
  12. cosval = np.cos(arr*np.pi/180)
  13. print(cosval)
  14. #计算反余弦值,以弧度为单位
  15. sec = np.arccos(cosval)
  16. print(sec)
  17. #通过degrees函数转化为角度进行验证
  18. print(np.degrees(sec))
  19. #下面是tan()正切函数
  20. tanval = np.tan(arr*np.pi/180)
  21. print(tanval)
  22. cot = np.arctan(tanval)
  23. print(cot)
  24. print(np.degrees(cot))

输出结果:

正选值数组:
[0.        0.5       0.8660254 1.       ]
#计算角度反正弦值,以弧度为单位
[0.         0.52359878 1.04719755 1.57079633]
通过degrees验证
[ 0. 30. 60. 90.]
余弦数组:
[1.00000000e+00 8.66025404e-01 5.00000000e-01 6.12323400e-17]
通过degrees验证
[0.         0.52359878 1.04719755 1.57079633]
反余弦值:
[ 0. 30. 60. 90.]

正切数组:
[0.00000000e+00 5.77350269e-01 1.73205081e+00 1.63312394e+16]
反正切值:
[0.         0.52359878 1.04719755 1.57079633]
通过degrees验证
[ 0. 30. 60. 90.]

舍入函数

NumPy 提供了三个舍入函数,介绍如下:

1) numpy.around() 

该函数返回一个十进制值数,并将数值四舍五入到指定的小数位上。该函数的语法如下:

numpy.around(a,decimals)

参数说明:

  • a:代表要输入的数组;
  • decimals:要舍入到的小数位数。它的默认值为0,如果为负数,则小数点将移到整数左侧。


示例如下:

  1. import numpy as np
  2. arr = np.array([12.202, 90.23120, 123.020, 23.202])
  3. print(arr)
  4. print("数组值四舍五入到小数点后两位",np.around(arr, 2))
  5. print("数组值四舍五入到小数点后-1位",np.around(arr, -1))

输出结果:

原数组arr:[12.202 90.2312 123.02 23.202]
数组值四舍五入到小数点后两位[12.2 90.23 123.02 23.2]
数组值四舍五入到小数点后-1位[10. 90. 120. 20.]

2) numpy.floor()

该函数表示对数组中的每个元素向下取整数,即返回不大于数组中每个元素值的最大整数。示例如下:

  1. import numpy as np
  2. a = np.array([-1.8, 1.1, -0.4, 0.9, 18])
  3. #对数组a向下取整
  4. print (np.floor(a))

输出结果:

[-2.  1. -1.  0. 18.]

3) numpy.ceil()

该函数与 floor 函数相反,表示向上取整。示例如下:

  1. import numpy as np
  2. a = np.array([-1.8, 1.1, -0.4, 0.9, 18])
  3. #对数组a向上取整
  4. print (np.ceil(a))

输出结果:

[-1.  2. -0.  1. 18.]

posted @ 2022-08-02 17:17  随遇而安==  阅读(83)  评论(0编辑  收藏  举报