激动的心,颤抖的手,终于讲到函数了。
到这说明numpy这项工具被你掌握了大半。
掌握了前面的array对象和操作,数学运算、函数和统计是非常好理解的东西,无非调用numpy封装好的工具而已。
废话不多说,开始今天的内容。
数学运算
常用的数学运算有加减乘除,取绝对值,取倒数,幂运算,求和等等。
下面整理了一些常用的数学运算方法:
功能 | 方法 | 参数 | 说明 |
---|---|---|---|
加 | np.add() | arr1,arr2 | arr1 + arr2 |
减 | np.subtract() | arr1,arr2 | arr1 - arr2 |
乘 | np.multiply() | arr1,arr2 | arr1 * arr2 |
除 | np.divide() | arr1,arr2 | arr1 / arr2 |
求倒数 | np.reciprocal() | args | 1/args(args的倒数) |
求余数 | np.mod() | args1,args2 | args1 % args2(args1除以args2后的余数) |
求绝对值 | np.absolute() | args | /args/(args的绝对值) |
幂运算 | np.power() | args1,args2 | args1 ^ args2(args1的args2次方) |
import numpy as np
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 + arr2: ', np.add(arr1, arr2)) # 求和,等同于使用 +(arr1 + arr2)
# 运算结果:
arr1 + arr2: [ 3 7 11]
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 - arr2: ', np.subtract(arr1, arr2)) # 求差,等同于使用 -(arr1 - arr2)
# 运算结果:
arr1 - arr2: [-1 -1 -1]
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 * arr2: ', np.multiply(arr1, arr2)) # 求乘,等同于使用 *(arr1 * arr2)
# 运算结果:
arr1 * arr2: [ 2 12 30]
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 / arr2: ', np.divide(arr1, arr2)) # 求商,等同于使用 /(arr1 / arr2)
# 运算结果:
arr1 / arr2: [0.5 0.75 0.83333333]
arr1 = np.array([1, 3, 5],dtype='float64')
print('arr1计算倒数: ', np.reciprocal(arr1)) # 求倒数,需指定数据类型以保证精度,等同于(1 / arr1)
arr2 = np.array([2, 4, 6])
# 运算结果:
arr1计算倒数: [1. 0.33333333 0.2 ]
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 % arr2: ', np.mod(arr2, arr1)) # 求余数
# 运算结果:
arr1 % arr2: [0 1 1]
arr1 = np.array([1, -3, 5])
print('arr1的绝对值: ', np.absolute(arr1)) # 求绝对值
# 运算结果:
arr1的绝对值: [1 3 5]
arr1 = np.array([1, 3, 5])
arr2 = np.array([2, 4, 6])
print('arr1 ^ arr2: ', np.power(arr2, arr1)) # 求次方
# 运算结果:
arr1 ^ arr2: [ 2 64 7776]
当然,numpy的科学计算远不止这些,还可以求对数、积分、聚合计算等等。这里只列举了一些平时用的较多的方法,没必要都背下来,需要再查也来得及。
而且,numpy的计算方式很灵活,比如上面的加减乘除或求倒、求幂等等,有多种计算方式,要懂得融会贯通,才能简捷高效地达到运算效果。
数学函数
高深的数学函数平时应用场景非常少(也可能我的层次没达到=。=),这里只列举下三角函数的计算方法,其他需要了可以再查:
功能 | 方法 | 参数 | 说明 |
---|---|---|---|
π值 | np.pi | 调用常数,π值 | 3.14159265... |
sin函数 | np.sin() | args | 对数组的元素分别计算sin函数 |
cos函数 | np.cos() | args | 对数组的元素分别计算cos函数 |
tan函数 | np.tan() | args | 对数组的元素分别计算tan函数 |
舍入函数 | np.around() | args, number | 对args取number位 |
import numpy as np
pi = np.pi
print('π值:', pi)
# 运算结果:
π值: 3.141592653589793
arr1 = np.array([0,30,60,90])
print('给定一组角度arr1,计算其sin值为:', np.sin(arr1 * np.pi / 180)) # 角度 * π / 180,计算sin
print('给定一组角度arr1,计算其cos值为:', np.cos(arr1 * np.pi / 180)) # 角度 * π / 180,计算cos
print('给定一组角度arr1,计算其tan值为:', np.tan(arr1 * np.pi / 180)) # 角度 * π / 180,计算tan
# 运算结果:
给定一组角度arr1,计算其sin值为: [0. 0.5 0.8660254 1. ]
给定一组角度arr1,计算其cos值为: [1.00000000e+00 8.66025404e-01 5.00000000e-01 6.12323400e-17]
给定一组角度arr1,计算其tan值为: [0.00000000e+00 5.77350269e-01 1.73205081e+00 1.63312394e+16]
arr1 = np.array([1,3,5,7])
print('对arr1除以4,取小数点后两位:', np.around(arr1 / 4 ,2))
# 运算结果:
对arr1除以4,取小数点后两位: [0.25 0.75 1.25 1.75]
今天的内容理解起来轻松了很多,后面会越来越轻松。