前文传送门:
从零开始学Python数据分析【2】-- 数值计算及正则表达式
从零开始学Python数据分析【3】-- 控制流与自定义函数
前面3期介绍完Python的基础知识后,我们需要进入数据分析领域的Python实现,首先我们从Numpy模块讲起。该模块主要有这几个功能:数学领域的线性代数、傅里叶变换;统计学领域的统计计算、随机数生成等。这里我们就针对统计里面的计算和随机数生成作讲解。
使用numpy构建矩阵
数组的创建可以使用numpy模块中的array函数实现,一维数组只需要给array函数传入一个列表或元组,二维数组则是传入嵌套的列表或元组。具体举例可知:
imagearr1和arr2为一维数组,arr3为二维数组,返回一个数组的行数和列数可使用shape方法,即
image元素的获取
使用索引的方式,查询一维数组和二维数组的元素。一维数组的索引与列表、元组的索引完全一致,这里就不在赘述;二维数组的索引就稍微有点复杂,我们可以通过例子来说明:
image.gifprint函数中的'\n',目的用来换行,使打印出来的结果不显得那么拥挤。
image.gif咦?报告,你最后一个返回的结果错了,你不是要返回由第一行、第三行、第三列和第四列组成的2×2矩阵吗?为什么是一个1×2的一维数组?如果像上面红框中使用索引的话,将获取【0,2】和【2,3】对应的两个值。那该如何返回想要的2×2的矩阵呢?我们可以这样写:
image.gif数学函数
取绝对值
np.abs
np.fabs
算术平方根
np.sqrt
平方
np.square
指数
np.exp
对数
np.log2
np.log10
np.log(x,base)
符号函数(大于0的数返回1、小于0的数返回-1、0返回0值)
np.sign
向上取整
np.cell
向下取整
np.floor
返回最近的整数
np.rint
判断是否缺失
np.isnan
判断是否有限
np.isfinite
判断是否无限
np.isinf
幂运算
np.power
余数
np.mod
统计函数
最大值
np.max
浮点型的最大值
np.fmax
最小值
np.mim
浮点型的最小值
np.fmin
求和
np.sum
均值
np.mean
标准差
np.std
方差
np.var
中位数
np.median
映射函数
apply_along_axis
apply_along_axis函数与R语言中的apply函数用法一致,可以针对某个轴的方向进行函数操作,同样,而且在pandas模块中的DataFrmae对象中,可以使用apply函数达到相同的效果。我们举一个例子来说明一下apply_along_axis函数的应用:
image随机数生成
numpy模块中的子模块random提供了很多产生随机数的方法,帮我们产生伪数据带来了极大的方便,这里就介绍几种常用的分布随机数。有时候为了使每次产生的随机数都相同,就需要设置固定的随机种子,设置随机种子可以调用seed函数实现。
离散分布
二项分布:在概率论和统计学中,二项分布是n个独立的是/非试验中成功的次数的离散概率分布,其中每次试验的成功概率为p。
imagesize参数可以用来控制生成的随机数的形状,r1就是一个10个长度的一维数组;r2就是一个3×5的矩阵。
泊松分布:该分布适合于描述单位时间(或空间)内随机事件发生的次数。如某一服务设施在一定时间内到达的人数,电话交换机接到呼叫的次数,汽车站台的候客人数,机器出现的故障数。
image生成3列泊松分布的数据,lamda参数分别取10,50,20,表示单位时间内某件事发生的频次。
连续分布
正态分布:该分布也成高斯分布,呈现两头低,中间高,左右对称的倒钟形状,是连续分布中使用最频繁的一种分布。
image其他常用分布:
image数据加载
numpy模块还提供了读取数据与写数据的函数,方便我们将外部数据文件读入到Python的工作环境中。这里推荐两个读数据的函数:
imagefname:指定外部文件的路径
delimiter:指定文件中数据列的分隔符
skiprows:指定读数时跳过的行数
skip_header:指定跳过首行
usecols:指定读取的数据列
这里个人比较推荐使用genfromtxt函数进行外部数据的读取。切记,loadtxt函数和genfromtxt函数读入数据形成数组,故必须要求读进来的数据一定是数值型数据,否则会报错。
数据写出
通过使用numpy模块中的savetxt函数实现python数据的写出,函数语法如下:
np.savetxt(fname, X, fmt='%.18e', delimiter=' ', newline='\n', header='', footer='', comments='# ')
fname:指定数据写出的路径
X:指定需要写出的数据
fmt:指定输出数据的格式,默认科学计算法
delimiter:指定数据列之间的分隔符,默认空格符
newline:指定新行的标识符,默认换行
header:指定输出数据首行值
footer:指定输出数据的末行值
comments:指定注释符,默认“#”
今天我们的内容就介绍到这边,欢迎大家拍砖。下期我们来聊聊Python数据框操作--pandas。
网友评论