Anacoda&Jupyter DAY 05 重点知识总结 Pandas绘图&Scipy
一 pandas绘图
Series 和 DataFrame 都有一个用于生成各类图标的plot方法 默认情况下 他们都是线型图
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pylot as plt
一 线形图
-
二维折线图
s = Series(data = np.random.randint(1,7,size = (10,)),index = np.arange(1,10,2))
s.plot() -
DataFrame 折线图
data = np.random.randint(0,100,size = (5,5))
index = [‘first’,‘second’,‘third’,‘fourth’,‘fifth’]
columns = [‘jack’,‘rose’,‘bob’,‘lucy’,‘lily’]df = DataFrame(data = data , index =index,columns = columns)
df.plot()
二 柱状图
柱状图示例 kind = ‘bar’/‘barh’
kind = ‘bar’ 是纵向的柱状图
kind = ‘barh’ 是横向的柱状图
-
Series 柱状图示例
s = Series(data = [100,200,30],index = [‘lucy’,‘lily’,‘jack’])
s.plot(kind = ‘bar’)
s.plot(kind = ‘barh’)
-
DataFrame柱状图示例
data = np.random.randint(0,100,size = (4,3))
index = list(‘ABCD’)
columns = [‘python’,‘C’,‘java’]df = DataFrame(data = data,index = index,columns = columns)
df.plot(kind = ‘bar’)
三 直方图
- 调用hist方法
柱高表示数据的频数 主款表示各组数据的组数
参数bins可以设置直方图方柱个数上线 越大柱宽越小 数据分组越精细
设置density = True 可以将频数转换为概率
s = Series(data = [1,2,2,1,3,3,5,8,4,9,6,4,1,2])
s.plot(kind = ‘hist’,bins = 50) ## bins 是组数 就是在这个区间内 一共分多少组 比如分成三组 那么会计算1-3之间的数的频数
- kde图 : 核密度估计 用于弥补直方图中由于参数bins设置不合理导致的精度缺失的问题
s.plot(kind= ‘hist’,density = True,bins = 5) # 设置density参数为True,可以把频数转换为概率
s.plot(kind= ‘kde’)
四 散布图
散步图是观察两个以为数据数列之间的关系的有效方法 DataFrame对象可用
使用方法 kind = ‘scatter’ 给明标签 columns
- data = np.random.normal(size = (1000,2))
columns = list(‘AB’)
df = DataFrame(data = data,columns = columns)
df.plot(kind = ‘scatter’,x = ‘A’,y = ‘B’)
二 Scipy
Scipy 依赖于Numpy
Scipy 提供了真正的矩阵
Scipy 包含的功能 : 最优化 线性代数 积分 插值 拟合 特殊函数 快速傅里叶变化 信号处理 图像处理 常微分方程
Scipy是高端科学计算工具包
Scipy由一些特定的子模块构成
- 利用快速傅里叶变换图片消噪
import scipy.fftpack as fftpack
import matplotlib.pyplot as plt
data = plt.imread('moonlanding.png')
data2 = fftpack.fft2(data)
data3