numpy入门详细教程(五)
本讲主要介绍numpy的随机数函数、numpy的统计函数、numpy的梯度函数。
numpy的随机数函数
numpy的random子库:np.random.*,主要有np.random.rand() np.random.randn() np.random.randint()
rand(d0,d1,d2,……,dn) : 根据d0-dn创建随机数组,浮点数,范围是[0,1),均匀分布
randn(d0,d1,d2,……,dn) : 根据d0-dn创建随机数组,标准正态分布
randint(low, high, shape) : 根据shape创建随机数数组,范围是[low, high)
seed(s) : 随机数种子,s是给定的种子值
如上图:当给定的种子值为4时,产生的随机数数组为array([[7, 6, 5],
[5, 7, 6]])
当再次给定种子值为4时,产生的随机数数组不变
shuffle(a): 根据数组a的每一纵列进行随机排列,数组a发生改变
permutation(a) :根据数组a的每一纵列进行随机排列,数组a不改变
choice(a, size, replace, p):从一维数组a中以概率p抽取元素,形成size形状的新数组,replace表示是否可以重用元素,默认为 True
已知数组a:
变换1:
变换2:
变换3:
uniform(low, high, size) : 产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc,scale,size) : 产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam,size) : 产生具有泊松分布的数组,lam随机事件发生率,size形状
numpy的统计函数:
已知数组a:
np.sum(a, axis=None) : 根据给定轴axis计算数组a相关元素之和,axis整数或元组。
分析:
当axis=None时,np.sum(a)表示数组a的所有元素总和
当axis=0时,表示的是数组a各纵列元素之和
当axis=1时,表示的是数组a各横列元素之和
mean(a, axis=None) :根据给定轴axis计算数组a相关元素的期望,axis整数或元组
average(a,axis=None,weights=None):根据给定轴axis计算数组a相关元素的加权平均值
weights=None时:
weight != None 时:
分析:Out[59] 中的6.5是如何得来的:(2*0+5*3+10*5)/(2+3+5)=6.5
std(a, axis=None) : 根据给定轴axis计算数组a相关元素的标准差
var(a, axis=None) : 根据给定轴axis计算数组a相关元素的方差
min(a) max(a) : 计算数组a中元素的最小值、最大值
argmin(a) argmax(a) : 计算数组a中元素最小值、最大值的降一维后下标
unravel_index(index, shape) : 根据shape将一维下标index转换成多维下标
ptp(a) : 计算数组a中元素最大值与最小值的差
median(a) : 计算数组a中元素的中位数(中值)
numpy的梯度函数:
np.gradient(a) :计算数组a中元素的梯度,当a为多维时,返回每个维度梯度
梯度:连续值之间的变化率,即斜率
XY坐标轴连续三个X坐标对应的Y轴值:a, b, c,其中,b的梯度是: (c‐a)/2
已知数组a:
求np.gradient(a):
分析:
Out[62]中7是如何得来的:(16-2)/2=7; -2是如何得来的;特例:-2是如何得来的:(2-4)/1=-1;
-13是如何得来的:(3-16)/1=-13
当数组a为多维数组时:
求np.gradient(a):
在上图中:上侧表示最外层维度(axis=0)的梯度,下侧表示第二层维度(axis=1)的梯度。
注:作者在慕课上跟随嵩天老师学习python数据分析与展示,收获良多。以上内容为学习笔记。