python数据分析-matplotlib、numpy、pandas
-
- 数据分析概述
-
数据分析就是用适当的方法对收集来的大量数据进行分析,帮助人们在一处判断,以便采取适当行动
-
数据分析流程
-
jupyter notebook说明
-
- matplotlib:Matplotlib — Visualization with Python
基本要点
-
能将数据进行可视化,更直观的呈现
-
能使数据更加客观、更具说服力
-
最流行的python底层绘图库,主要做数据与可视化图表
-
主要使用的是matplotlib库里面的pyplot
-
折线图
-
plot(x,y):以x为横坐标轴,以y为横坐标轴,展示
-
show():展示绘制的图像
-
figure(figsize=(20,8),dpi=80)
-
figure图形图标的意思,在这里指的就是所画的图
-
通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例
-
在图像模糊时候可以传入dpi参数,让图像更加清晰
-
savefige("路径"):可以保存为svg这种矢量图格式,放大不会有锯齿
-
设置横竖坐标轴
-
xticks():里面可以放列表推导式或者使用range()来指定横坐标轴的刻度
-
如:plt.xticks(range(2,25))或者plt.xticks([i/2 for i in range(4,49)])
-
yticks():通常里面放range(),可以指定最小值和最大值,通过调整步长来调整刻度
-
如:plt.yticks(range(min(y),max(y)+1,2))
-
在里面添加rotation=度数的参数,可以指定旋转的度数
-
横竖轴也可以用字符串表示
-
要注意数字和字符串要一一对应,数据的长度一样
-
设置字体格式
-
matplotlib.rc():第一种可以传递多个参数,第二种只能传递一个参数
-
import matplotlib
-
matplotlib.rc("font",family='MicroSoft YaHei')
-
另一种方式:通过matplotlib下的font manager解决
-
添加描述信息
-
xlabel():x轴描述信息
-
ylabel():y轴描述信息
-
title():标题
-
grid():绘制网格
-
legend():设置图例
-
散点图:scatter()
-
条形图:bar()
-
直方图:hist()
-
echart、plotly、seabom
-
- numpy
-
轴
-
在numpy中可以理解为方向,使用0,1,2.....数字表示
-
对于一个一维数组,只有一个0轴
-
对于二维数组(shape(2,2)),有0轴和1轴
-
二维中:axis=0为跨行,即按列操作,从上到下;axis=1从左到右
-
对于三维数组(shape(2,2,2)),有0,1,2轴
-
三维中:axis=0为从外到内,1为从上到下,2为从左到右
-
numpy读取数据
-
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
-
转置
-
取值
-
取行
-
取第二行:print(t2[2])
-
取连续的多行
-
第三行及其之后的所有行:print(t2[2:])
-
取不连续的多行
-
取第二、八、十行:print(t2[[1,7,9]])
-
取列
-
取第0列:print(t2[:,0])
-
取连续的多列
-
第三列及其之后的所有列:print(t2[:,2:])
-
取不连续的多列
-
取第一、三列:print(t2[:,[0,2]])
-
取特定值
-
取第三行第四列的值:print(t2[2,3])
-
取多行多列
-
第三行到第五行,第二列到第四列:print(t2[2:5,1:4])
-
取多个不相邻的点
-
取(0,0)(2,1)(2,3):print(t2[[0,2,2],[0,1,3]])
-
对数值进行修改
-
先取值,再修改即可
-
特定值修改
-
clip():裁剪
-
数据的拼接
-
竖直拼接
-
水平拼接
-
数组的行列交换
-
其他方法
-
获取最大值最小值的位置
-
np.argmax(数组,维度)
-
np.argmin(数组,维度)
-
创建一个全为0的数组:np.zeros((x,y))
-
创建一个全为1的数组:np.ones((x,y))
-
创建一个对角线为1的正方形数组:np.eye(x)
-
随机数生成
-
浅拷贝和深拷贝
-
a=b,完全不复制,a和b相互影响
-
a=b[:],视图的操作,一种切片,会创建新的对象a,但是a的数据完全由b报告,他们两个的数据变化是一致的
-
a=b.copy(),复制,a和b互不影响
-
nan和inf
-
都是float类型
-
nan(NAN,Nan):not a number表示不是一个数字
-
当读取本地文件为float时候,若有缺失,就会出现nan
-
当做了一个不适合的计算的时候,也会出现
-
注意点
-
两个nan是不相等的(np.nan!=np.nan)
-
利用此特性可以判断数组内nan的个数,也可以通过np.count_nonzero(np.isnan())计算
-
nan和任何值计算都为nan
-
nan不能简单的替换
-
inf(-inf,inf):infinity,inf表示正无穷,-inf表示负无穷
-
当一个数字除以0,python会直接报错,numpy是一个inf或者-inf
-
常用统计函数
-
- pandas
-
numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能帮我们处理其他类型(如字符串、时间序列等)的数据
-
常见类型
-
Series 一维,带标签数组
-
修改dtype
-
切片和索引
-
DataFrame 二位,Series容器
-
DataFrame
-
行索引和列索引指定
-
可以转换为DataFrame类型
-
基础属性
-
整体情况查询
-
取值
-
df.loc:通过标签索引获取行数据
-
df.iloc:通过位置获取行数据
-
布尔索引
-
字符串方法
-
pandas读取数据
-
缺失值处理
-
数据合并
-
join():默认情况下,他是把行行索引相同的数据合并在一起
-
merge():按照指定的列,把数据按照一定的方式合并到一起
-
inner是交集,outer是并集
-
数据的分组聚合
-
group=df.groupby(by='Country')
-
得到的是<pandas.core.groupby.generic.DataFrameGroupBy object at 0x0000026BC1B9E0D0>
-
可以进行遍历
-
可以选中特定分组
-
可以调用聚合方法
-
常见的聚合操作
-
按多个条件进行分组
-
返回Series
-
返回DataFrame
-
索引和复合索引
-
简单的索引操作
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)