numpy模块的核心就是基于数组的运算,相比于列表和其他数据结构,数组的运算效率是最高的。在统计分析和挖掘过程中,经常会使用到numpy模块的函数,以下是常用的数学函数和统计函数:
常数p就是圆周率 3.1415926...
常数e :2.71828...
np.fabs(arr) 例如:np.fabs(-3) 输出:3.0
np.ceil(arr) 例如:np.ceil(3.2) 输出:4.0 并非四舍五入操作
np.floor(arr) 类似ceil 向下取整
np.round(arr) 四舍五入 例如:np.round(3.4) 输入:3.0 输出的还是浮点型数据,并非整型
np.fmod(arr1,arr2) 求余,对arr1,arr2并没有要求要整数,如np.fmod(3.9,3.8) 结果是:0.1000000
np.modf(arrj) 返回数组元素的小数部分和整数部分 如:arr1 = np.array([3.21,4.1,5.2]) print(np.modf(arr1)) 输出如下:
(array([0.31, 0.1 , 0.2 ]), array([2., 4., 5.]))
np.sqrt(arr) 计算各元素的算数平方根,这个元素可以是具体的数值,也可以是数组,例如:print(np.sqrt(arr1)) out:
[1.51986842 2.02484567 2.28035085]
np.square(arr) 用法同np.sqrt(arr) 计算各元素的平方值
np.power(arr,α) 表示arr的α次方 也就是说 其实 np.power 可以包括 aqrt square exp
如:
import numpy as np
arr1 = np.array([2.31,4.1,5.2])
print(np.power(arr1,0.5))
print(np.sqrt(arr1))
print(np.exp(arr1))
print(np.power(np.e,arr1))
print(np.power(arr1,2))
print(np.square(arr1))
out:
[1.51986842 2.02484567 2.28035085] [1.51986842 2.02484567 2.28035085] [ 10.07442466 60.3402876 181.27224188] [ 10.07442466 60.3402876 181.27224188] [ 5.3361 16.81 27.04 ] [ 5.3361 16.81 27.04 ]
常用统计函数:
统计函数绝大部分都是有axis参数,该参数的目的就是在统计数组元素时需要按照不同的轴方向计算,如果axis = 1,计算各行的统计值,axis = 0,计算各列
的统计值。
例如:
import numpy as np
arr2 = np.arange(9).reshape(3,3)
print(np.sum(arr2,axis = 0)) #统计二维数组垂直方向各项的值的和
print(np.sum(arr2,axis = 1)) #统计二维数组横向方向各项的值的和
out:
[ 9 12 15] [ 3 12 21]
示例2:
import numpy as np
arr2 = np.arange(9).reshape(3,3)
print('输入arr2用于对比:
',arr2)
print('....分割线....')
print(np.min(arr2,axis = 0))
print(np.max(arr2,axis = 1))
print(np.mean(arr2,axis = 0))
print(np.median(arr2,axis = 1))
print(np.sum(arr2,axis =0))
print(np.std(arr2,axis =0))
print(np.var(arr2,axis=0)) #方差 也就是差的平方了
print(np.cumsum(arr2,axis = 0)) #累计和 可以通过结果的值 如:3,5,7的得来是 0+3 1+4 2+5
print(np.cumprod(arr2,axis =0)) #跟累加处理方式类似,一个个剩下来
print(np.argmax(arr2,axis = 0 )) #这里反馈的是按照轴方向返回的最大值的位置,并不是最大值