《Python数据分析与展示》课程笔记

第0周 Python基本语法元素

conda: 一个工具,用于包管理和环境管理,其中:包管理与pip类似,管理Python第三方库环境管理能够允许用户使用不同版本Python,并能灵活切换
anaconda:一个集合,包括conda、某版本Python、一批第三方库等
conda将工具、第三方库、Python版本、conda都当作包,同等对待

第1周 数据分析之表示

单元1 NumPy库入门

一维数据:由对等关系的有序或无序数据构成,采用线性方式组织
列表和数组:一组数据的有序结构
列表:数据类型可以不同
数组:数据类型相同
二维数据:由多个一维数据构成,是一维数据的组合形式
多维数据:由一维或二维数据在新维度上扩展形成
高维数据:仅利用最基本的二元关系展示数据间的复杂结构 键值对
数据维度的Python表示:数据维度是数据的组织形式
一维数据:列表和集合类型
[3.1398, 3.1349, 3.1376] 有序
{3.1398, 3.1349, 3.1376} 无序
二维数据:列表类型
多维数据:列表类型
高维数据:字典类型或数据表示格式:JSON、XML和YAML格式
NumPy的数组对象:ndarray
NumPy是一个开源的Python科学计算基础库,是SciPy、Pandas等数据处理或科学计算库的基础。整合C/C++/Fortran代码的工具(运算速度快),线性代数、傅里叶变换、随机数生成等功能。
轴(axis): 保存数据的维度;秩(rank):轴的数量
ndarray对象的属性:
这里写图片描述
ndarray数组的创建方法:
(1)从Python中的列表、元组等类型创建ndarray数组x = np.array(list/tuple)
(2)使用NumPy中函数创建ndarray数组,如:arange, ones, zeros等
这里写图片描述
这里写图片描述
(3)使用NumPy中其他函数创建ndarray数组
这里写图片描述
ndarray数组的变换:
对于创建后的ndarray数组,可以对其进行维度变换和元素类型变换a = np.ones((2,3,4), dtype=np.int32)
ndarray数组的维度变换:
这里写图片描述
ndarray数组的类型变换:new_a = a.astype(new_type)
ndarray数组向列表的转换:ls = a.tolist()
NumPy一元函数: 对ndarray中的数据执行元素级运算的函数
这里写图片描述
这里写图片描述
NumPy二元函数:
这里写图片描述

单元2 数据存取与函数

数据的CSV文件存取:

np.savetxt(frame, array, fmt='%.18e', delimiter=None)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• array : 存入文件的数组
• fmt : 写入文件的格式,例如:%d %.2f %.18e
• delimiter : 分割字符串,默认是任何空格
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• dtype : 数据类型,可选
• delimiter : 分割字符串,默认是任何空格
• unpack  : 如果True,读入属性将分别写入不同变量

CSV只能有效存储一维和二维数组
np.savetxt() np.loadtxt()只能有效存取一维和二维数组
多维数据的存取

a.tofile(frame, sep='', format='%s')
• frame  : 文件、字符串
• sep : 数据分割字符串,如果是空串,写入文件为二进制
• format : 写入数据的格式
p.fromfile(frame, dtype=float, count=‐1, sep='')
• frame  : 文件、字符串
• dtype : 读取的数据类型
• count  : 读入元素个数,‐1表示读入整个文件
• sep : 数据分割字符串,如果是空串,写入文件为二进制

该方法需要读取时知道存入文件时数组的维度和元素类型,a.tofile()np.fromfile()需要配合使用,可以通过元数据文件来存储额外信息。
NumPy的便捷文件存取

np.save(fname, array) 或 np.savez(fname, array)
• fname : 文件名,以.npy为扩展名,压缩扩展名为.npz
• array  : 数组变量
np.load(fname)
• fname : 文件名,以.npy为扩展名,压缩扩展名为.npz

NumPy的随机数函数:np.random.*
这里写图片描述
这里写图片描述
这里写图片描述
NumPy的统计函数:np.*
这里写图片描述
这里写图片描述
NumPy的梯度函数:
np.gradient(f) 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度

单元3 实例1 图像的手绘效果

PIL库:(PIL,Python Image Library),是一个具有强大图像处理能力的第三方库。在命令行下的安装方法: pip install pillow
from PIL import Image:Image是PIL库中代表一个图像的类(对象)
图像的数组表示: im = np.array(Image.open("D:/pycodes/beijing.jpg")); print(im.shape, im.dtype)
图像是一个三维数组,维度分别是高度、宽度和像素RGB值

第2周 数据分析之展示

单元4 Matplotlib库入门

Matplotlib库介绍:Python优秀的数据可视化第三方库。Matplotlib库由各种可视化类构成,内部结构复杂,受Matlab启发。matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式:import matplotlib.pyplot as plt
plt.plot()只有一个输入列表或数组时,参数被当作Y轴,X轴以索引自动生成
plt.savefig()将输出图形存储为文件,默认PNG格式,可以通过dpi修改输出质量
plt.plot(x,y)当有两个以上参数时,按照X轴和Y轴顺序绘制数据
plt.subplot(3,2,4)及plt.subplot(324)在全局绘图区域中创建一个分区体系,并定位到一个子绘图区域
pyplot的plot()函数

plt.plot(x, y, format_string, **kwargs)
∙ x  : X轴数据,列表或数组,可选
∙ y  : Y轴数据,列表或数组
∙ format_string: 控制曲线的格式字符串,可选,由颜色字符、风格字符和标记字符组成
∙ **kwargs : 第二组或更多(x,y,format_string)
# 当绘制多条曲线时,各条曲线的x不能省略

这里写图片描述
这里写图片描述
这里写图片描述
pyplot的文本显示
这里写图片描述

单元5 Matplotlib基础绘图函数示例

这里写图片描述
这里写图片描述
这里写图片描述

单元6 实例2:引力波的绘制

第3周 数据分析之概要

单元7 Pandas库入门

Pandas库介绍

Pandas是Python第三方库,提供高性能易用数据类型和分析工具
import pandas as pd
Pandas基于NumPy实现,常与NumPy和Matplotlib一同使用

Pandas库的理解

两个数据类型:Series, DataFrame
基于上述数据类型的各类操作:基本操作、运算操作、特征类操作、关联类操作
这里写图片描述

Pandas库的Series类型

Series类型由一组数据及与之相关的数据索引组成
这里写图片描述
Series类型可以由如下类型创建:
• Python列表,index与列表元素个数一致
• 标量值,index表达Series类型的尺寸
• Python字典,键值对中的“键”是索引,index从字典中进行选择操作
• ndarray,索引和数据都可以通过ndarray类型创建
• 其他函数,range()函数等
Series类型包括index和values两部分,操作类似ndarray类型和Python字典类型。
Series类型的操作类似ndarray类型:
• 索引方法相同,采用[]
• NumPy中运算和操作可用于Series类型
• 可以通过自定义索引的列表进行切片
• 可以通过自动索引进行切片,如果存在自定义索引,则一同被切片
Series类型的操作类似Python字典类型:
• 通过自定义索引访问
• 保留字in操作
• 使用.get()方法

Pandas库的DataFrame类型

DataFrame类型由共用相同索引的一组列组成
这里写图片描述
DataFrame类型可以由如下类型创建:
• 二维ndarray对象
• 由一维ndarray、列表、字典、元组或Series构成的字典
• Series类型
• 其他的DataFrame类型
这里写图片描述
注:由字典创建时字典的key会作为列索引。
DataFrame是二维带“标签”数组,基本操作类似Series,依据行列索引。

Pandas库的数据类型操作

重新索引:.reindex(index=None, columns=None, …)能够改变或重排Series和DataFrame索引
这里写图片描述
索引类型: Series和DataFrame的索引是Index类型,Index对象是不可修改类型
这里写图片描述
删除指定索引对象:.drop()能够删除Series和DataFrame指定行或列索引

Pandas库的数据类型运算

算术运算法则
算术运算根据行列索引,补齐后运算,运算默认产生浮点数
补齐时缺项填充NaN (空值)
二维和一维、一维和零维间为广播运算
采用+ ‐ * /符号进行的二元运算产生新的对象
数据类型的算术运算
这里写图片描述
注:fill_value参数替代NaN,替代后参与运算
不同维度间为广播运算,一维Series默认在轴1参与运算
使用运算方法可以令一维Series参与轴0运算
比较运算法则
比较运算只能比较相同索引的元素,不进行补齐
二维和一维、一维和零维间为广播运算
采用> < >= <= == !=等符号进行的二元运算产生布尔对象
注:同维度运算,尺寸一致;不同维度,广播运算,默认在1轴

单元小结

Series = 索引 + 一维数据
DataFrame = 行列索引 + 二维数据
理解数据类型与索引的关系,操作索引即操作数据

单元8 Pandas数据特征分析

数据的排序

.sort_index(axis=0, ascending=True)在指定轴上根据索引进行排序,默认升序
.sort_values()在指定轴上根据数值进行排序,默认升序

Series.sort_values(axis=0, ascending=True)
DataFrame.sort_values(by, axis=0, ascending=True)
#  by:axis轴上的某个索引或索引列表

NaN统一放到排序末尾

数据的基本统计分析

基本的统计分析函数
适用于Series和DataFrame类型:
这里写图片描述
这里写图片描述
适用于Series类型:
这里写图片描述

数据的累计统计分析

累计统计分析函数
适用于Series和DataFrame类型,累计计算:
这里写图片描述
适用于Series和DataFrame类型,滚动计算(窗口计算):
这里写图片描述

数据的相关分析

这里写图片描述
这里写图片描述
相关分析函数: 适用于Series和DataFrame类型
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值