大数据——Python库介绍NumPy、Pandas、Matplotlib

数据分析介绍

  • 目标
    • 发现新的特征
    • 对已有假设进行验证
  • 手段
    • 基于统计学原理
    • 借助数据分析软件或框架处理数据
  • 成果
    • 通常是图文结合的数据分析报告

Python数据分析

  • 优势
    • 简单、易学,适合初学者作为入门语言
    • 拥有一个巨大而活跃的科学计算社区
    • 拥有强大的通用编程能力
  • Python数据分析常用库
    • numpy、pandas、matplotlib、scipy
  • 常用开发工具
    • Jupyter Notebook

Jupyter Notebook

  • 运行在浏览器上的交互式笔记本
    • github的明星编码方式
  • 工作原理
    • 实际调用的是IPython运行Python代码
  • 优势/劣势
    • 交互式的界面让文字、代码、图片完美融合
    • 可以方便的分享项目
    • Debug比较困难

Numpy数据分析库

  • 支持高性能运算与矩阵运算
  • 高性能科学和数据分析库的基础包
  • 使用场景
    • 量化交易模型
    • 数据分析中的矩阵运算

ndarray数组

  • 基础数据结构
    • 存储单一数据类型的多维数组
  • 适用于高性能运算
    • 矢量运算能力
    • 复杂广播能力
  • ndarray可用的数据类型
    • 布尔型、整型、浮点型、nan
  • 查看数组数据类型
    • dtype

ndarray支持的数据类型(一)

名称描述
bool用一个字节存储的布尔类型(True或False)
inti由所在平台决定其大小的整数(一般为int32或int64)
int8一个字节大小,-128至127
int16整数,-32768至32767
int32整数,-231至232-1
int64整数,-263至263-1

ndarray支持的数据类型(二)

名称描述
uint8无符号整数,0至255
uint16无符号整数,0至65535
uint32无符号整数,0至2**32-1
uint64无符号整数,0至2**64-1
float16半精度浮点数:16位,正负号1位,指数5位,精度10位
float32单精度浮点数:32位,正负号1位,指数8位,精度23位
float64或float双精度浮点数:64位,正负号1位,指数11位,精度52位
complex64复数,分别用两个32位浮点数表示实部和虚部
complex128或complex复数,分别用两个64位浮点数表示实部和虚部

ndarray基础属性

  • 构造ndarray
    • 使用list构造ndarray
    • 使用arange()方法构造ndarray
  • 数组的形状
    • shape属性
      • ndarray的轴:axis
        • axis从0开始计数
    • reshape调整数组形状

ndarray基础运算

  • 相同形状的ndarray数组运算
    • 加减乘除运算是对应位置的元素运算
  • 数组和数值间的运算
    • 数值和数组的每个元素进行运算
      • 支持加减乘除运算

了解Pandas统计分析库

  • Pandas介绍
    • 以NumPy库为底层基础
    • 提供了大量能快速便捷地处理数据的函数和方法
    • 可快速处理千万级以上的数据
    • 可以和Matplotlib等绘图协作,快速实现数据可视化
  • Pandas数据结构
    • Series
      • value
      • index
    • DataFrame
      • 由多列Series组成

Series数据结构

  • 创建Series对象
    • 使用列表创建Series
      • 自动生成索引
      • 设置索引
    • 使用字典创建Series
      • key被设置为索引
  • Series保存数据的特点
    • 数值类型可以不一致
  • Series算术运算
    • 计算中会自动对齐不同索引的数据

在这里插入图片描述

Series常用方法

方法说明
iloc(start:end)通过index索引截取Series中的数据,不包括end
head(n)截取Series中的前n条数据
[]根据[]中的条件截取Series中的数据
sort_values()按照Series的值进行排序,默认是升序,设置降序:ascending=False
value_counts()用来计算Series里面相同数据出现的概率,生成新的Series
max() /min()返回Series中的最大值和最小值
mean()求均值
median()求中位数
std()求标准差
isnull()判断是否为空值

DataFrame数据结构

  • DataFrame介绍
    • 由多列Series组成的数据结构
    • 每一列Series都有一个列名
    • 所有列共享索引
  • DataFrame的使用
    • 实现类似于数据库的复杂操作
    • DataFrame和Series之间可以相互转化

创建DataFrame的方法

  • 构造DataFrame的方法
    • 用包含等长的列表的字典创建DataFrame对象
      • 外部字典的键会成为列名
      • 自动生成索引
    • 用由字典组成的嵌套字典生成DataFrame对象
      • 外部字典的键会成为列名
      • 内部嵌套字典的键会成为索引

操作DataFrame的常用方法

方法说明
reset_index()将索引转换成DataFrame的一个列,并重新添加索引,也可用于将Series转化成DataFrame,把Series的索引转化成DataFrame的列
df[‘col_name’]通过列名获取DataFrame中的一列,返回Series对象
df[df[‘col_name’]>n]通过条件筛选符合条件的行,条件为col_name列的值大于n。可以使用&(且),
del df[‘col_name’]删除DataFrame中指定列名的列
drop()删除数据,默认为根据索引删除行数据
iloc(start:end)通过index索引解决DataFrame中指定区间的列
isnull()显示DataFrame中的空值状态,如果存在空值则为True
sort_values(by=‘col_name’)按照选择的列的数值进行排序

使用Pandas加载数据

  • 常见的数据源格式
    • MySQL数据库
      • pd.read_sql(sql,con=db)
        • con可以是使用PyMySQL创建的数据库连接
        • sql可以使用select * from table_name加载所有数据
    • csv格式文件
      • pd.read_csv(file_path)
    • json格式文件
      • pd.read_json(file_path)

数据可视化

  • 数据可视化的意义
    • 传递速度快
      • 人脑对视觉信息的处理要比书面信息快10倍
    • 数据显示的多维性
    • 更直观的展示信息
    • 大脑记忆能力的限制
  • 数据可视化常见图形
    • 柱状图
    • 散点图
    • 饼状图

Matplotlib绘图库

  • matplotlib介绍
    • 一个有效Python 2D绘图库
    • 高版本也可以绘制部分3D图
    • 支持多种数据结构
      • list、ndarray、Series、DataFrame
  • 使用Matplotlib的注意事项
    • 默认不支持中文
      • plt.rcParams[‘font.sans-serif’]=[‘SimHei’]
    • 在Jupyter Notebook上输出的是矢量图
      • config InlineBackend.figure_format=‘svg’

使用matplotlib绘制基本图形

  • 绘制图片的步骤
    • 导入Matplotlib的Python库
    • 根据绘制图形的需求准备数据
      • 一般是相对应的2个维度的数据
        • 使用Series时,数据由Series.index和Series提供
    • 使用关键字参数调用对应图形的绘制接口
      • 散点图: scatter(x,height)
      • 柱状图:bar(x,height)
      • 饼状图:pie(x,labels)
    • 显示图片
      • show()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值