python数据分析-matplotlib、numpy、pandas

    • 数据分析概述

  • 数据分析就是用适当的方法对收集来的大量数据进行分析,帮助人们在一处判断,以便采取适当行动

  • 数据分析流程

  • jupyter notebook说明

基本要点

  • 能将数据进行可视化,更直观的呈现

  • 能使数据更加客观、更具说服力

  • 最流行的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

  • 索引和复合索引

  • 简单的索引操作

猜你喜欢

转载自blog.csdn.net/qq_61897309/article/details/128552135