NumPy数学函数

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

三角函数

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

示例如下:

import numpy as np

arr = np.array([0, 30, 60, 90, 120, 150, 180])

#计算arr数组中给定角度的三角函数值

#通过乘以np.pi/180将其转换为弧度

print(np.sin(arr * np.pi/180))

print(np.cos(arr * np.pi/180))

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() 将弧度转换为角度来实现,示例如下:

import numpy as np

arr = np.array([0, 30, 60, 90])

#正弦值数组

sinval = np.sin(arr*np.pi/180)

print(sinval)

#计算角度反正弦,返回值以弧度为单位

cosec = np.arcsin(sinval)

print(cosec)

#通过degrees函数转化为角度进行验证

print(np.degrees(cosec))

#余弦值数组

cosval = np.cos(arr*np.pi/180)

print(cosval)

#计算反余弦值,以弧度为单位

sec = np.arccos(cosval)

print(sec)

#通过degrees函数转化为角度进行验证

print(np.degrees(sec))

#下面是tan()正切函数

tanval = np.tan(arr*np.pi/180)

print(tanval)

cot = np.arctan(tanval)

print(cot)

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,如果为负数,则小数点将移到整数左侧。


示例如下:

import numpy as np

arr = np.array([12.202, 90.23120, 123.020, 23.202])

print(arr)

print("数组值四舍五入到小数点后两位",np.around(arr, 2))

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()

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

import numpy as np

a = np.array([-1.8, 1.1, -0.4, 0.9, 18])

#对数组a向下取整

print (np.floor(a))

输出结果:

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

3) numpy.ceil()

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

import numpy as np

a = np.array([-1.8, 1.1, -0.4, 0.9, 18])

#对数组a向上取整

print (np.ceil(a))

输出结果:

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