库。数据分析的核心库一定是Pandas。这个库几乎可以解决大部分结构化数据的处理需求。库的常用功能在文章《Python数据分析常用函数及参数详解,可以留着以备不时之需 》中也有详细介绍。但是Pandas建立在Numpy的基础上,其向量化运算函数在处理数组和矩阵方面有很大的优势。虽然常见的数据分析任务可能很少用到Numpy库,但是一旦你有循环需求或者处理数值数据,你应该首先想到这个库。本文整理了库的一些常用函数和基础知识。整理起来并不容易。希望觉得还不错的朋友可以点个赞。基本介绍在介绍功能之前,先介绍一下Numpy库的基本情况。该库最重要的特性是它的ndarray对象。这个对象可以理解为线性代数中的数组。每个数组都有维度和类型等属性。dimensions直观判断一个数组对象的维数是通过判断它包含了多少层[],一层[]是一维的。其中,一维数组可以看作是向量,二维数组可以看作是有行和列的数据,三维数组可以看作是有行和列数据的页,更高维的可以看作是我只能理解。类型化数组不仅可以存储数值数据,还可以存储字符串,但要求元素类型必须一致。如果不一致,则按照str>float>int的优先级进行类型转换。例如,将一个字符串插入一个整数数组,会将所有元素转换为字符串类型。另外说一下广播机制。广播机制通俗的理解是,当对不同形状的数组进行算术运算时,广播机制会自动将两个数组补全为相同形状的数组。但是,必须满足以下前提条件之一:当两个数组的维度不相等时,从末端开始的两个维度的轴长相等;当两个数组的维度相等时,其中一个维度的长度为1。最好通过实践来理解这一点。Numpy常用函数分类为了更好的理解库的功能,本文将常用函数按以下方式进行分类。其中,基础功能包括对象创建、属性查看、切片索引、形状变换等子类;random模块是一些常用的随机函数;char模块主要用于处理字符数组,即数组元素是字符串类型的数据;Matlib是Numpy中的矩阵库。矩阵其实就是一个特殊的数组,但是必须是二维的;linglg库是一个属于线性代数的函数库。后三个库的功能一般用在科学计算和图像识别领域,在数据分析中用的很少,所以本文就不介绍了,但是你要知道有这两个库,让你可以知道Numpy在你需要的时候也有。相应的功能。下面的基本函数用arr表示一个数组,np表示一个numpy库(1)对象创建array(object,dtype=None,order=None,ndmin=0)#order是创建方法,C是行direction,F为列方向,默认为C,ndmin指定生成数组的最小维度arange(start=0,stop=4,step=,dtype=)#生成一维数组,不包括stoplinspace(start=,stop=,num=,endpoint=True)#生成一维算术差分数据,endpoint决定是否包含stop值,默认包含asarray(object,dtype=None,order=None)#将object转换为arrayzeros(shape,dtype=float,order='C')#生成全0元素的数组ones(shape,dtype=float,order='C')#生成全1元素的数组eye(N,dtype=float,order='C')#生成对角线元素为1,其他元素为0的N阶矩阵(2)属性视图arr.shape#数组形状arr.ndim#数组维度arr.size#数组长度arr.dtype#数组数据类型(3)切片索引arr[i]#取i行arr[[i,j]]#取i,j行arr[:,i:j]#取i到j-1列arr[::-1,::-1]#elementReversenp.where(condition,x,y)#condition为真,给数组中的数据赋值x,否则为y(4)形状变换arr.reshape(newshape,order=None)#newshape是一个新的维度,元组格式arr.flatten(order='C')#将数组展平成一维数组,order表示行或列,默认行arr.T#arraytransposearr.transpose()#arraytransposenp.append(arr,values,axis=None)#axis控制返回什么类型,默认返回拼接的一维数组np.concatenate((arr1,arr2,arr3),axis=0)#多个数组可以拼接(5)统计函数arr.sum(axis=None)#axis是整数或元组arr.mean(axis=None)#计算平均值arr.std(axis=None))#计算标准差arr.var(axis=None)#计算方差np.average(arr,axis=None,weights=None)#计算数组的加权平均值,weights为权重np.median(arr,axis=None)#计算元素的中位数数组中arr.argmin(axis=None)##返回数组最小值的位置arr.argmax(a)#返回数组最大值的位置np.dot(arr1,arr2)#点数组的乘积运算随机库的随机函数在生成练习数据等方面很有帮助,可以关注np.random.rand(d0,d1,d2,...)#返回的随机数输入维度,随机数服从[0,1)区间np的均匀分布。random.randn(d0,d1,d2,...)#返回输入维度的标准正态分布随机数np.random.normal(loc=0.0,scale=1.0,size=None)#返回正态分布输入维度随机数,可以控制正态分布的期望和方差np.random.randint(low=,high=,size=None,dtype='l')#返回属于[low,high)interval,size可以是Tuplenp.random.seed(s)#随机数种子,可以保证两次随机数生成的结果相同
