NumPy和Pandas总结

 

一、区别


Numpy:是数值计算的扩展包,它能高效处理N维数组(用来进行矩阵计算的),复杂函数,线性代数.

Panadas:则基于Numpy,丰富并简化了Numpy的操作,是做数据处理。市python的一个数据分析包(panel datas)

如果说numpy相当于一个list,那么Pandas就相当于一个dict

简单来说,当数据的维度比较大的时候,单纯地通过numpy中的数字索引来访问元素显得有些意义不明,我们希望给某一行,某一列甚至某个单元的元素一个名称,简化操作的同时丰富每一行的代码的语义和可读性,这就是Pandas

1. numpy


(1)csv文件的输入和输出
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)#文件下载
(参数说明:
frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
dtype : 数据类型,可选
delimiter : 分割字符串,默认是任何空格
skiprows=1:跳过头行
unpack : 如果是True,返回的数组将被转置
usecoles=1:跳过几列来读取)

np.savetxt(frame, array, fmt=’%.18e’, delimiter=None) #文件保存
(参数: fmt : 写入文件的格式,例如:%d ;%.2f:小数点后保 留两位; %.18e)

(2)数组的创建
从Python中的列表、元组等类型创建ndarray数组
使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
利用其他函数,创建ndarray数组

(3)复制、排序和调整数组
np.copy(arr):复制数组arr,返回ndarray对象
arr.sort():排序数组,返回ndarray对象
arr.reshape(3,4):将数组arr调整为3行4列,并不改变数据,返回ndarray对 象
arr.resize(5,6):将数组arr调整为5行6列,空值用0填充,返回ndarray对象 注意:函数会默认将原数组进行排序,来填充目标数组同时如果原数组元素个 数多了,会截取目标数组size的部分:
arr.T:返回数据arr的转置(行与列互换) ,不是arr.T()

(4)增加、删除元素
np.append(arr,values):为数组arr增加元素values, 返回ndarray对象
np.insert(arr,2,values):为数组arr在索引为2的元素 之前插入元素values,返回ndarray对象
np.delete(arr,3,axis=0):删除数组arr第三行所有的 元素,返回ndarray对象
np.delete(arr,4,axis=1):删除数组arr第四列所有的 元素,返回ndarray对象

(4)组合和拆分
np.concatenate((arr1,arr2),axis=0):将数组arr2按 行序拼接在数组arr1的末尾,返回ndarray对象
np.split(arr,3):将数组arr拆分为3个子数组,返回 ndarray对象
np.hsplit(arr,5):将数组arr从索引为5的元素后水平 拆分,返回ndarray对象

(5)标量数学,整体计算
 np.add(arr,1):为数组arr的每个元素都加上1,返回ndarray对象
 np.subtract(arr,2):为数组arr的每个元素都减2,返回ndarray对象
 np.multiply(arr,3):为数组arr的每个元素都乘3 ,返回ndarray对象
 np.divide(arr,4):为数组arr的每个元素都除4 ,返回ndarray对象
 np.power(arr,5):为数组arr的每个元素都计算5次方 ,返回ndarray对象

np.add(arr1,arr2):将数组arr1和数组arr2的对应元素相加,返回ndarray对 象
 np.subtract(arr1, arr2):将数组arr1和数组arr2的对应元素相减,返回 ndarray对象
 np.multiply(arr1, arr2):将数组arr1和数组arr2的对应元素相乘,返回 ndarray对象
 np.divide(arr1, arr2):将数组arr1和数组arr2的对应元素相除,返回 ndarray对象
 np.power(arr1, arr2):将数组arr2中的元素作为数组arr1的对应元素的指数, 返回ndarray对象
(6)统计数值
 np.mean(arr,axis=0):计算数组arr中指定轴的均值,返回 ndarray对象
 np.sum():返回数组arr中所有元素的和
 np.min():返回数组arr中最小的元素
 np.max():返回数组arr中最大的元素
 np.var():返回数组arr中所有元素的方差
 np.std():返回数组arr中所有元素的标准差
 np.corrcoef():返回数组arr中所有元素的相关系数

2. pandas


Series = 索引 + 一维数据
DataFrame = 行列索引 + 二维数据

(1)数据的导入/导出:
df.read_csv(filename):从CSV文件导入数据
df.read_excel(filename):从Excel文件导入数据
df.to_excel(filename):导出数据到EXCEL文件

(2)数据选取
df[col]:根据列名,并以Series的形式返回列
df[col1,col2]:以DataFrame的形式返回多列
s.iloc[0]:按位置选取数据
s.loc[‘index’]:按索引选取数据

(3)数据清理
pd.isnull():检查DataFrame对象中的空值【返回True,False】
df.dropna():删除所有包含空值的行
df.dropna(axis=1):删除所有包含空值的列
s.replace(1,’one’):用’one’代替所有等于1的值 df.rename(columns={‘old_name’:’new_name’}):选择 性更改列名
df.fillna(x):用x替代所有的空值

(4)数据处理
df[df[col]>0.5]:选择col列的值大于0.5的行
df.sort_values(col1):按照列col1排序数据,默认升序排列
df.sort_values(col2,ascending=False):按照列col2降序排列
df.groupby (col):按照列col进行分组的Groupby对象

(5)数据合并
df1.append(df2):将df2中的行添加到df1的尾部
pd.concat([df1,df2],axis=1):将df2中的列添加到df1的尾部

import pandas as pd 
d1={'math':[99,88,87],'chinese':[98,90,94],'english':[80,87,None]}
d=pd.DataFrame(d1,index=['明明','小小','丽丽'])
d2={'math':[99,78,87],'chinese':[95,90,94],'english':[80,87,77]}
d2=pd.DataFrame(d1,index=['小明','小陈','小丽'])

>>>d.append(d2)
    chinese  english  math
明明       98     80.0    99
小小       90     87.0    88
丽丽       94      NaN    87
小明       98     80.0    99
小陈       90     87.0    88
小丽       94      NaN    87

>>>d2.append(d)
    chinese  english  math
小明       98     80.0    99
小陈       90     87.0    88
小丽       94      NaN    87
明明       98     80.0    99
小小       90     87.0    88
丽丽       94      NaN    87

>>> pd.concat([d,d2])
    chinese  english  math
明明       98     80.0    99
小小       90     87.0    88
丽丽       94      NaN    87
小明       98     80.0    99
小陈       90     87.0    88
小丽       94      NaN    87

>>>pd.concat([d,d2],axis=1)
    chinese  english  math  chinese  english  math
丽丽     94.0      NaN  87.0      NaN      NaN   NaN
小丽      NaN      NaN   NaN     94.0      NaN  87.0
小小     90.0     87.0  88.0      NaN      NaN   NaN
小明      NaN      NaN   NaN     98.0     80.0  99.0
小陈      NaN      NaN   NaN     90.0     87.0  88.0
明明     98.0     80.0  99.0      NaN      NaN   NaN

df. mean:所有列的均值
df.corr():列与列之间的相关系数
df. count:每一列中的非空值的个数
df. max:每一列中的最大值
df. min:每一列中的最小值
df. median:每一列中的中位数
df. std:每一列中的标准差
 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值