NumPy 是 Python 科学计算的基础包。之前的文章中我们也numpy的数据类型,基本结构做了入门的讲解,本篇开始介绍numpy 数组相对应的操作函数。
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。
三角函数
# 标准的三角函数:sin()、cos()、tan(); # arcsin,arccos,和 arctan 函数返回给定角度的 sin,cos 和 tan 的反三角函数。 # 函数的结果可以通过 numpy.degrees() 函数将弧度转换为角度 a = np.array([0, 30, 45, 60, 90]) print("a = ", a) print("正弦: np.sin(a * np.pi /180) = ", np.sin(a * np.pi/180)) print("余弦: np.cos(a * np.pi / 180) = ", np.cos(a * np.pi / 180)) sin = np.sin(a * np.pi/180) inv = np.arcsin(sin) print("sin = np.sin(a * np.pi/180)", "\n", "inv = np.arcsin(sin)") print("反正弦(弧度):np.arcsin(sin) = ", inv) deg = np.degrees(inv) print("角度:np.degrees(inv) ", deg)
输出的结果: a = [ 0 30 45 60 90] 正弦: np.sin(a * np.pi /180) = [0. 0.5 0.70710678 0.8660254 1. ] 余弦: np.cos(a * np.pi / 180) = [1.00000000e+00 8.66025404e-01 7.07106781e-01 5.00000000e-01 6.12323400e-17] sin = np.sin(a * np.pi/180) inv = np.arcsin(sin) 反正弦(弧度):np.arcsin(sin) = [0. 0.52359878 0.78539816 1.04719755 1.57079633] 角度:np.degrees(inv) [ 0. 30. 45. 60. 90.]
舍入函数
# numpy.around(a,decimals) 函数返回指定数字的四舍五入值。 # a: 数组 # decimals: 舍入的小数位数。 默认值为0。 如果为负,整数将四舍五入到小数点左侧的位置 a = np.array([1.0, 5.55, 123, 0.567, 25.532]) print("原始 a = ", a) print("np.around(a, decimals=1) = ", np.around(a, decimals=1)) print("np.around(a, decimals=-1) = ", np.around(a, decimals=-1)) # numpy.floor() 返回小于或者等于指定表达式的最大整数,即向下取整。 # numpy.ceil() 返回大于或者等于指定表达式的最小整数,即向上取整。 a = np.array([-1.7, 1.5, -0.2, 0.6, 10]) print('提供的数组:', a) print('np.floor(a) = ', np.floor(a)) print("np.ceil(a) = ", np.ceil(a))
输出结果: 原始 a = [ 1. 5.55 123. 0.567 25.532] np.around(a, decimals=1) = [ 1. 5.6 123. 0.6 25.5] np.around(a, decimals=-1) = [ 0. 10. 120. 0. 30.] 提供的数组: [-1.7 1.5 -0.2 0.6 10. ] np.floor(a) = [-2. 1. -1. 0. 10.] np.ceil(a) = [-1. 2. -0. 1. 10.] a = np.arange(9, dtype=np.float_).reshape(3, 3) b = np.array([10., 5., 1.])
算术函数
# 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。 a = np.arange(9, dtype=np.float_).reshape(3, 3) b = np.array([10., 5., 1.]) print("a = np.arange(9, dtype=np.float_).reshape(3, 3)") print("b = np.array([10., 5., 1.])") print("a = ", a) print("np.add(a, b) = ", np.add(a, b)) print("np.subtract(a, b) =", np.subtract(a, b)) print("np.multiply(a, b) = ", np.multiply(a, b)) print("np.divide(a, b) = ", np.divide(a, b)) # numpy.reciprocal() 函数返回参数逐元素的倒数。如 1/4 倒数为 4/1。 # numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂 print("np.reciprocal(b) = ", np.reciprocal(b)) a = np.array([10, 100, 1000]) print("a = np.array([10,100,1000])") print("np.power(a, 2) = ", np.power(a, 2)) # numpy.mod()/numpy.remainder() 计算输入数组中相应元素的相除后的余数 a = np.array([10, 20, 30]) b = np.array([3, 5, 7]) print("np.mod(a, b) = ", np.mod(a, b)) print("np.remainder(a, b) = ", np.remainder(a, b))
输出结果: a = np.arange(9, dtype=np.float_).reshape(3, 3) b = np.array([10., 5., 1.]) a = [[0. 1. 2.] [3. 4. 5.] [6. 7. 8.]] np.add(a, b) = [[10. 6. 3.] [13. 9. 6.] [16. 12. 9.]] np.subtract(a, b) = [[-10. -4. 1.] [ -7. -1. 4.] [ -4. 2. 7.]] np.multiply(a, b) = [[ 0. 5. 2.] [30. 20. 5.] [60. 35. 8.]] np.divide(a, b) = [[0. 0.2 2. ] [0.3 0.8 5. ] [0.6 1.4 8. ]] np.reciprocal(b) = [0.1 0.2 1. ] a = np.array([10,100,1000]) np.power(a, 2) = [ 100 10000 1000000] np.mod(a, b) = [1 0 2] np.remainder(a, b) = [1 0 2]