numpy、scipy、pandas、matplotlib的读书报告

发布时间 2023-12-23 17:37:10作者: Sco-c1116

1、基本函数用法

Numpy:

基础的数学计算模块,来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多,本身是由C语言开发。这个是很基础的扩展,其余的扩展都是以此为基础。数据结构为ndarray,一般有三种方式来创建。

numpy.array()# 创建数组。
numpy.arange()# 生成等差数列。
numpy.linspace()# 生成等间隔的数列。
numpy.random()# 生成随机数。
numpy.sum()# 数组元素的总和。
numpy.mean()# 数组元素的算术平均值。
numpy.max()# 数组中的最大值。
numpy.min()# 数组中的最小值。
numpy.argmax()# 数组中最大值的索引。
numpy.argmin()# 数组中最小值的索引。

 

Scipy:

方便、易于使用、专为科学和工程设计的Python工具包.它包括统计,优化,整合,线性代数模块,傅里叶变换,信号和图像处理,常微分方程求解器等等。基本可以代替Matlab,但是使用的话和数据处理的关系不大,数学系,或者工程系相对用的多一些。

scipy.cluster()# 用于数据聚类。
scipy.linalg()# 用于线性代数运算。
scipy.optimize()# 用于优化问题。
scipy.integrate()# 用于数值积分。
scipy.stats()# 用于统计分析。

 

Pandas:面向数据操作和分析的 Python 库,提供用于处理数字图表和时序数据的数据结构和操作功能。

pandas.DataFrame()# 创建DataFrame。
pandas.read_csv()# 读取CSV文件。
pandas.read_excel()# 读取Excel文件。
pandas.DataFrame.head()# 查看DataFrame的前几行。
pandas.DataFrame.describe()# 快速查看数据的一些统计摘要。
pandas.DataFrame.sort_values()# 对DataFrame进行排序。
pandas.DataFrame.groupby()# 对DataFrame进行分组。

 

Matplotlib:Python 中常用的绘图库,能在跨平台的交互式环境生成高质量图形。后来在它的基础上又衍生了更为高级的绘图库 Seaborn。

需要掌握的是:
1.散点图,折线图,条形图,直方图,饼状图,箱形图的绘制。
2.绘图的三大系统:pyplot,pylab(不推荐),面向对象
3.坐标轴的调整,添加文字注释,区域填充,及特殊图形patches的使用
4.金融的同学注意的是:可以直接调用Yahoo财经数据绘图

matplotlib.pyplot.plot()# 绘制二维图表。
matplotlib.pyplot.scatter()# 绘制散点图。
matplotlib.pyplot.xlabel()# 设置x轴标签。
matplotlib.pyplot.ylabel()# 设置y轴标签。
matplotlib.pyplot.title()# 设置图表标题。
matplotlib.pyplot.legend()# 显示图例。
matplotlib.pyplot.show()# 显示图表。

 

2、具体问题解决(pandas)

import pandas as pda
    # 使用pandas生成数据
    # Series代表某一串数据 index指定行索引名称,Series索引默认从零开始
    # DataFrame代表行列整合出来的数据框,columns 指定列名
    a = pda.Series([8, 9, 2, 1], index=['one', 'two', 'three', 'four'])
    # 以列表的格式创建数据框
    b = pda.DataFrame([[5,6,2,3],[3,5,1,4],[7,9,3,5]], columns=['one', 'two', 'three', 'four'],index=['one', 'two', 'three'])
    # 以字典的格式创建数据框
    c = pda.DataFrame({
        'one':4, # 会自动补全
        'two':[6,2,3],
        'three':list(str(982))
    })
    # b.head(行数)# 默认取前5行头
    # b.tail(行数)# 默认取后5行尾
    # b.describe() 统计数据的情况  count mean std min 25% max
    e = b.head()
    f = b.describe()
    # 数据的转置,及行变成列,列变成行
    g = b.T

 

3、图像处理(Matplotlib

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,1000)
y = np.cos(2*np.pi*x)*np.exp(-x)+0.8
plt.plot(x,y,'k',color='blue',label="$exp-decay$",linewidth = 3)
plt.axis([0,6,0,1.8])
ix = (x>0.8)&(x<3)
plt.fill_between(x,y,0,where = ix,facecolor='grey',alpha=0.25)
plt.text(0.58(0.8+3),0.2,r"$\int_a^b f(x)\mathrm{d}x$",horizontalalignment='center')
plt.legend()
plt.show()

结果: