Python 数据可视化 笔记


更新中…

Python 数据可视化

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

Numpy 基础

ndarray_a = np.array([1, 2, 3, 4])
ndarray_b = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])

基础操作

  1. 索引

    ndarray_a[1]  # 2
    ndarray_b[1][2]  # 7
    ndarray_a[-1]  # 4
    ndarray_b[1][-3]  # 6
    
  2. 切片

    ndarray_a[1:-1]  # array([2, 3])
    ndarray_b[:1, 1:-1]  # array([2, 3])
    ndarray_b[:, 1:-1]  # array([[2, 3],
                        #        [6, 7]])
    
  3. 分割

    np.split

    np.hsplit

    np.vsplit

  4. 迭代

    numpy.nditer

    numpy.ndenumerate

高级操作

  1. 过滤(可用于数据清洗)

    1. ndarray_a[ndarray_a > 2]  # array([3, 4])
      ndarray_b[ndarray_b > 2]  # array([3, 4, 5, 6, 7, 8])
      
    2. np.extract

    3. np.where

  2. 排序

    1. np.sort

      np.sort([2, 5, 1, 0, 9, 2, 5, 3, 6])  # array([0, 1, 2, 2, 3, 5, 5, 6, 9])
      np.sort([2, 5, 1, 0, 9, 2, 5, 3, 6])[::-1]  # array([9, 6, 5, 5, 3, 2, 2, 1, 0])
      
    2. np.argsort

  3. 组合

  4. 重构

    1. ndarray.reshape(shape)

      ndarray_a.reshape(1, 4)  # array([[1, 2, 3, 4]])
      ndarray_a.reshape(4, 1)  # array([[1],
                               #        [2],
                               #        [3],
                               #        [4]])
      ndarray_a.reshape(2, -1)  # array([[1, 2],
                                #        [3, 4]])
      

Pandas 基础

Pandas 的主要数据结构是 Series (一维数据)与 DataFrame (二维数据),这两种数据结构足以处理
金融、统计、社会科学、工程等领域里的大多数典型用例。

DataFrame

DataFrame 是一个表格型的数据结构

  • 含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。

  • 既有行索引也有列索引。它可以被看做由 Series 组成的字典(共同用一个行索引)
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gFn9Fquy-1653450491153)(Python 数据可视化.assets/image-20220525104654476.png)]

  • Pandas Series 类似表格中的一个列[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-r5jgJWf9-1653450491154)(Python 数据可视化.assets/image-20220525104642062.png)]

Series

  • Pandas Series 类似表格中的一个列( column ),类似于一维数组,可以保存任何数据类型。

  • Series 由索引( index )和列组成

  • 可以从 .csv 文件、 Excel 电子表格或 SQL 数据库中加载数据集,即可创建 Series

  • Series 也包含了多种创建方式

    • Numpy 数组

      ndarray = np.array([1, 2, 3])
      series = pd.Series(ndarray)
      print(series)
      
    • 列表

      plist = ['p', 'y', 't', 'h', 'o', 'n']
      series = pd.Series(plist)
      print(series)
      

索引

df = pd.read_csv('./iris.csv')

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jqTVmfSZ-1653450491154)(Python 数据可视化.assets/image-20220525112034879.png)]

  • 列索引

    • df[‘category’],返回一个 Series

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P4sB584v-1653450491154)(Python 数据可视化.assets/image-20220525112216071.png)]

    • df[[‘category’]],返回一个 DataFrame

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NDRY9Pkn-1653450491155)(Python 数据可视化.assets/image-20220525112648273.png)]

  • 行索引

    • df.loc[],行索引
    • df.iloc[],整数行号索引

Pandas 高级操作

  • 过滤

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Pf5fTtSb-1653450491155)(Python 数据可视化.assets/image-20220525113327411.png)]

  • 排序

Matplotlib 基础

Matplotlib 介绍

  • 每个图表封装于 Figure 对象中,即可视化的顶层容器
  • Python 对象可控制 Axes 、刻度线、图例、标题、文本框、网格和许多其他对象
  • Figure
    • 最外层容器并用作绘图的画布,进而可在其
      中绘制多个图表。
    • 不仅加载 Axes 对象,还可对 Title 进行配置
  • Axes
    • 是实际的图表或子图表
    • 包括 x 轴和 y 轴、spine 和图例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5YMNaMAv-1653450491155)(Python 数据可视化.assets/image-20220525113552483.png)]

Figure 和 Axes

  • Figure 想象成一张纸(一般被称之为画布)
  • Axes 代表的则是纸中的一片区域(当然可以有多个区域,这是后续要说到的 subplots)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZCDv1ajV-1653450491155)(Python 数据可视化.assets/image-20220525113603338.png)]

函数式编程和面向对象编程

  1. 函数式编程(plt)

    plt.figure()
    plt.plot([1, 2, 3], [4, 5, 6])
    plt.show()
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IBOFoXDz-1653450491156)(Python 数据可视化.assets/image-1.png)]

    函数式编程方式,先生成一个 Figure 画布,然后在这个画布上隐式生成一个画图区域进行画图。

  2. 面向对象编程(ax)

    fig, ax = plt.subplots()
    ax.plot([1, 2, 3], [4, 5, 6])
    plt.show()
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-no4cPxkk-1653450491156)(Python 数据可视化.assets/image-2.png)]

    面向对象编程方式,同时生成了 Figure 和 axes 两个对象,然后用 ax 对象在其区域内进行绘图。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-25Sgwwva-1653450491156)(Python 数据可视化.assets/image-20220525114521468.png)]

Matplotlib 中的格式化字符串

  • 颜色
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eB1umA3b-1653450491157)(Python 数据可视化.assets/image-20220525114610828.png)]

  • 标记

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZpgKFtCh-1653450491157)(Python 数据可视化.assets/image-20220525114628264.png)]

  • 线条样式
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z36r0NMT-1653450491157)(Python 数据可视化.assets/image-20220525114643473.png)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值