NumPy学习第十课:一文通俗了解NumPy中的数学函数

前言导读

在前面NumPy的学习过程当中,我们知道NumPy库是一个特别擅长处理大型矩阵或者说存储大型数据的这么一个
库,与Python自身相比较在处理数据的时候更加的高效,所以我们在数学中常见到的计算函数,NumPy库中基本上也都已经涵盖了。而且已经封装好了很多的函数,我们在实际的使用过程当中,只需要引入NumPy库,并调用相应的函数方法就可以了,非常的便捷。

这一节我们就先来了解了解NumPy中的数学函数。

常规函数

我们在高中的时候,学习了很多的数学函数,诸如:三角函数,基本函数,指数函数,对数函数,复合函数,反函数等,看到这些函数名字是否能够想起来它们的运算过程呢?

比如三角函数的运算公式:sin, cos, tan 这三个的关系和运算方式是什么样的,其实对于我们这节的学习还是起到必要作用的。下面就简单的将这三者的关系做一个描述,以便为后面NumPy数学函数学习打个小基础,也唤醒唤醒之前沉睡的数学知识。

三角函数sin、cos、tan分别代表正弦、余弦和正切,它们是三角学中的基本函数

简单画一个图,方便理解:

NumPy学习第十课:一文通俗了解NumPy中的数学函数_第1张图片

下面我们大概写一个它们的计算公式,看图理解一目了然

正弦: s i n A = 对边 / 斜边 = a / c sinA = 对边/斜边 = a/c sinA=对边/斜边=a/c

余弦: c o s A = 邻边 / 斜边 = b / c cosA = 邻边/斜边 = b/c cosA=邻边/斜边=b/c

正切: t a n A = 对边 / 邻边 = a / b tanA = 对边/邻边 = a/b tanA=对边/邻边=a/b

三者关系: s i n 2 A + c o s 2 A = 1 sin²A + cos²A = 1 sin2A+cos2A=1 t a n A = s i n A / c o s A tanA = sinA/cosA tanA=sinA/cosA ;$ tanA × cosA = 1$

NumPy学习第十课:一文通俗了解NumPy中的数学函数_第2张图片

公式:

sinα = cos(90°-α)

cosα = sin(90°-α)

tanα = cot(90°-α)

Cotα = tan(90°-α)

以上就是我们之前学习的三角函数,此次复习是为了我们更好的去理解NumPy中封装好的数学公式,因为是已经封装好的,我们只管调用就行所以,之前学习的数学知识还得是回忆一下的。

NumPy函数

NumPy 库给我们提供了标准的三角函数
我们先将NumPy提供的函数进行一个整理,然后在编辑器中进行验证。

三角函数和反三角函数
函数名称 描述
sin() 正弦值
cos() 余弦值
tan() 正切值
arcsin() 反正弦值
arccos() 反余弦值
arctan() 反正切值

三角函数示例代码:

"""
@Created on : 2024/5/15 11:09
@creator : er_nao
@File :numpy_22_数学函数.py
@Description :
"""
import numpy as np

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

#我们通过np.pi将数字转换成角度的度数
# 那么np.pi是什么呢?我们稍后可以同时将它打印出来
# 我们先通过元素 乘 pi/180 转化为弧度 
print('获取一维数组的正弦值')
print(np.sin(a*np.pi/180))
print('\n')
print('获取一维数组的余弦值')
print(np.cos(a*np.pi/180))
print('\n')
print('获取一维数组的正切值')
print(np.tan(a*np.pi/180))

print('\n')
print('打印np.pi')
print(np.pi)

#输出结果

# 获取一维数组的正弦值
# [0.         0.5        0.70710678 0.8660254  1.        ]
#
#
# 获取一维数组的余弦值
# [1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01
#  6.12323400e-17]
#
#
# 获取一维数组的正切值
# [0.00000000e+00 5.77350269e-01 1.00000000e+00 1.73205081e+00
#  1.63312394e+16]
#
#
# 打印np.pi(我们可以看到,np.pi打印出来就是我们数学中的π,
# 刚好numpy提供的和数学中的一样,就是数字转度数的公式)

# 3.141592653589793

反三角函数示例代码:


import numpy as np

# 上面我们计算出了三角函数值,现在我们计算根据值进行反三角函数的运算
print('反三角函数值')
sin_inv_arr = np.arcsin(sin_arr)
cos_inv_arr = np.arccos(cos_arr)
tan_inv_arr = np.arctan(tan_arr)
print('\n')
print('反正弦函数')
print(sin_inv_arr)
print('\n')
print('反余弦函数')
print(cos_inv_arr)
print('\n')
print('反正切弦函数')
print(tan_inv_arr)

#再次使用转换函数将其进行转化来进行验证
# 我们使用 degrees()这个方法
print('\n')
print('反正弦:')
print(np.degrees(sin_inv_arr))

print('\n')
print('反余弦:')
print(np.degrees(cos_inv_arr))

print('\n')
print('反正切:')
print(np.degrees(tan_inv_arr))
#输出结果
# 反正弦函数
# [0.         0.52359878 0.78539816 1.04719755 1.57079633]
# 
# 
# 反余弦函数
# [0.         0.52359878 0.78539816 1.04719755 1.57079633]
# 
# 
# 反正切弦函数
# [0.         0.52359878 0.78539816 1.04719755 1.57079633]
# 
# 
# 反正弦:
# [ 0. 30. 45. 60. 90.]
# 
# 
# 反余弦:
# [ 0. 30. 45. 60. 90.]
# 
# 
# 反正切:
# [ 0. 30. 45. 60. 90.]
舍入函数

概念:

我们再看一个函数概念,舍入函数。什么叫做舍入函数呢?顾名思义就是指将数组的返回值进行四舍五入,可以看到我们上面的三角函数的返回值都是很长的,这个看着也不美观。

我们先来看看舍入函数的写法格式:numpy.around(a,decimals),其中有两个参数,第一个参数a就是我们要进行四舍五入的数组,第二个参数代表我们要舍入的小数位数,也就是要保留几位小数,默认值是0,如果为负数,那么将舍入到小数点左侧的位置。

示例代码:

x = np.array([8, 5.55, 0.15926, 18.878, 4.4])
# x = np.array([1, 2.0, 30.12, 129.567])
print('原数组形式')
print(x)
print('\n')
# 调用around()函数开始进行四舍五入
# 我们分别将舍入的几种形式都进行测试
print('不写decimals')
print(np.around(x))
print('\n')
print('写decimals=1')
print(np.around(x, decimals=1))
print('\n')
print('写decimals=-1')
print(np.around(x, decimals=-1))
print('\n')


# 输出结果:
# 不写decimals
# [ 8.  6.  0. 19.  4.]
# 
# 
# 写decimals=1
# [ 8.   5.6  0.2 18.9  4.4]
# 
# 
# 写decimals=-1
# [10. 10.  0. 20.  0.]


不知道大家有没有注意到,当decimals=-1的时候,控制台打印出来值似乎看的有些不明白,

比如: np.around(5.55, decimals=-1) 的值为什么是10,而不是6呢?

再比如:np.around(4.12, decimals=-1)的值为什么是0.0,而不是4呢?

如果对此处也有疑问的话,请移步动到这篇文章:numpy.around()函数详解

接下来我们再看 numpy.floor()函数和 numpy.ceil()函数。

numpy.floor() 返回小于或者等于指定表达式的最大整数即向下取整

numpy.ceil() 返回大于或者等于指定表达式的最小整数即向上取整

floor()函数示例代码:

x = np.array([8, 5.55, 0.15926, 18])
print(np.floor(x))

# 输出结果
# [ 8.  5.  0. 18.]

ceil()函数示例代码:

x = np.array([8, 5.55, 0.15926, 18])
print(np.ceil(x))

# 输出结果
# [ 8.  6.  1. 18.]

本文提供的内容仅用于个人学习、研究,如有相关权利人的合法权利,请及时通知作者,予以删除!

你可能感兴趣的:(Numpy基础知识学习,numpy,学习,python,pycharm,开发语言)