pythonorder函数_Python数据分析Numpy库常⽤函数详解
Python进⾏数据分析的核⼼库肯定是Pandas,该库差不多可以解决结构化数据的绝⼤部分处理需求。在《Python数据分析常⽤函数及参数详解,可以留着以备不时之需 》⼀⽂中也已经对该库的常⽤函数进⾏了详细介绍。
但是Pandas是构建在Numpy的基础之上的,它的⽮量化运算功能在处理数组和矩阵上具有着⾮常⼤的优势。虽然普通的数据分析任务可能很少⽤到Numpy库,但⼀旦你具有循环需求或是要处理数值型数据时,你应该⾸先想到该库。
本⽂整理了该库的⼀些常⽤函数和基础知识,整理不易,希望觉得还不错的朋友可以不吝给个赞。
基础介绍
在介绍函数之前先介绍下Numpy库的基本情况,该库最重要的特点就是其ndarray对象,这个对象可以理解成线性代数⾥⾯的数组,每个数组有维度和类型等属性。
维度linspace numpy
直观地判断数组对象有⼏个维度可通过判断其包含在⼏层[]中,⼀层[]即为⼀维。其中,⼀维数组可看成
是向量,⼆维数组可看成是有⾏和列的数据,三维数组可看成是有页,且每页中有⾏和列的数据,⾄于更⾼维度就只能意会了。
类型
数组并不是只能存数值型数据,是也可以存字符串的,但它要求元素类型必须⼀致,不⼀致时会按照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为⾏⽅向,F为列⽅向,默认为C,ndmin指定⽣成数组的最⼩维度
arange(start=0,stop=4,step=,dtype=)
#⽣成⼀维数组,不包含stop
linspace(start=,stop=,num=,endpoint=True)
#⽣成⼀维等差数据,endpoint决定是否包含stop值,默认包含
asarray(object,dtype=None,order=None)
#将对象转换为数组
zeros(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]
#元素反转
np.where(condition,x,y)
#condition为真的数组中数据赋值x,否则为y
(4)形状变换
#newshape为新维度,元组格式
arr.flatten(order='C')
#将数组平铺为⼀维数组,order表⽰按⾏还是按列,默认按⾏arr.T
#数组转置
#数组转置
np.append(arr,values,axis=None)
#axis控制返回什么类型,默认返回的是拼接后的⼀维数组
#可拼接多个数组
(5)统计函数
arr.sum(axis = None)
#axis为整数或者元组
#计算平均值
arr.std(axis = None)
#计算标准差
arr.var(axis = None)
#计算⽅差
np.average(arr,axis =None, weights =None)
#计算数组的加权平均值,weights中为权重
# 计算数组中元素的中位数
arr.argmin(axis=None)
##返回数组最⼩值的位置
arr.argmax(a)
#返回数组最⼤值的位置
np.dot(arr1,arr2)
#数组的点积运算
random库
随机函数在⽣成练习数据等⽅⾯是⾮常有帮助的,可以重点掌握⼀下。np.random.rand(d0,d1,d2,……)
#返回输⼊维度的随机数,随机数服从[0, 1)区间的均匀分布
np.random.randn(d0,d1,d2,……)
#返回输⼊维度的标准正态分布随机数
al(loc=0.0,scale=1.0,size=None)
#返回输⼊维度的正态分布随机数,可控制正态分布的期望和⽅差np.random.randint(low=,high=,size=None,dtype='l')
#返回属于[low,high)区间的随机整数,size可为元组
np.random.seed(s)
#随机数种⼦,可保证两次随机数⽣成的结果⼀样
来源:本⽂为第三⽅转载,如有侵权请联系⼩编删除。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论