numpy和pandas简介
Numpy(Numerical Python) 是 Python语言的一个第三方库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy是一个运行速度非常快的数学库,主要用于数组计算。
Pandas是基于Numpy数组构建的,也是Python语言的第三方库,Pandas使数据预处理、清洗、分析工作变得更快更简单,主要用于数据分析。
Pandas是专门为处理表格和混杂数据设计的,相当于Python的Excel,而Numpy更适合处理统一的数组数据。
Numpy和Pandas都是第三方库,需要预先安装好后才能导入使用,如果安装了Anaconda,则不必另外安装(因为Anaconda会自动安装很多数据分析用的第三方库)。
numpy和pandas的安装及导入
#安装
pip install numpy
pip install pandas
#导入
import numpy as np
import pandas as pd
1、numpy
Numpy的一维数组
1). 一维数组的创建
使用array函数创建一维数组,以列表的形式传入参数
arr=np.array([1,2,3])
brr=np.array([1,2,5])
2). 获取数组中的值
可以选择获取某个值,或获取范围内的值
#单个获取:获取序号0的值
arr[0]
#范围获取:从序号1到序号3(不包括3)的值
arr[1:3]
3). 查看数据类型
dtype方法可以查看数组的数据类型
#查看数据类型dtype
arr.dtype
4).对数组聚合运算
#平均值
arr.mean()
#求和
arr.sum()
#标准差
arr.std()
5). 向量化运算
#向量相加
print(arr+brr)
#向量乘以标量
print(arr*2)
Numpy的二维数组
Numpy中,二维数组与一维数组的定义、查询及访问均非常类似。数组下标均从零开始,行号与列号用逗号分隔,行号在前,列号在后。
1). 二维数组的创建
同样使用array函数创建二维数组
a=np.array([[1,2,3],[4,5,6]])
2). 获取数组中的值
可以选择获取某个元素,也可获取某行/某列的所有元素:
#获取某个元素:获取行号是0,列号是2的元素
a[0,2]
#获取某行:获取第一行
a[0,:]
#获取某列:获取第一列
a[:,0]
3). 行列计算
聚合函数内若没有指定参数,计算的是整个数组;函数内指定axis参数为1,则计算每一行;函数内指定axis参数为0,则计算每一列。
#计算整个数组的平均值
a.mean()
#按轴计算:axis=1计算每一行
a.mean(axis=1)
#按轴计算:axis=0计算每一列
a.mean(axis=0)
2、pandas
Pandas的一维数组
Pandas创建的一维数组可用index来指定索引,这样,访问时就可以通过索引来访问数组(Pandas的一维数组与Numpy的区别是,Pandas的有索引,Numpy的没有索引)。
1). 一维数组的创建
使用Series函数创建一维数组,以列表的形式传入参数,index指定索引:
pd.Series([1,2,3,4])
数据信息展示
查看sr各元素出现的次数sr.value_counts(),return series
sr内元素的个数sr.size
作图sr.plot()
数据类型转换
series类型的ndarray类型sr.values
文件读写
excel
读取excel: pandas.read_excel(path,sep=',',header=None),reutrn DataFrame类型
写入excel: df.to_excel(path)
csv
读取csv:pandas.read_excel(path)
Dataframe
索引
选中df的第i列: df[i],return Series 或df.i,type: num,后者的i应遵从变量命名规则
选中df的第i行: df.loc[i]
选中df的第i行第j列的元素: df.loc[i,j]
选中df的名为name的列df.['name'],return series
数据信息展示
选取df的前5行df.head(),return Dataframe
选取df的前n行df.head(n),return Dataframe
计算df各列的各种常用数据数值df.describe(),return Dataframe
展示df的相关信息df.info(),return NoneType,如数据类型、占用内存大小等
df的元素个数df.size
查看df当前所有列及其类型df.columns,return pandas…index,返回列索引和类型
groupby
以x列将df分组df.groupby('x'),return DataFrameGroupBy,通常经list()转换便于观察
以x为列,y为行分组df.groupby(['x','y']),return DataFrameGroupBy
查看gb内各索引数量gb.size(),return Series
数据类型转换
Dataframe转换为listnp.array(df).tolist()