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

发布时间 2023-12-18 20:57:14作者: 南柯e梦c

Numpy:
存储和处理大型矩阵,比Python自身的嵌套列表结构高效,由C语言开发。数据结构为ndarray,一般有三种方式来创建。

Pandas:
基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。最具有统计意味的工具包,某些方面优于R软件。数据结构有一维的Series,二维的DataFrame,三维的Panel。

学习Pandas你要掌握的是:
1.汇总和计算描述统计,处理缺失数据 ,层次化索引
2.清理、转换、合并、重塑、GroupBy技术
3.日期和时间数据类型及工具(日期处理方便地飞起)

Matplotlib:

Python中最著名的绘图系统,很多其他的绘图例如seaborn(针对pandas绘图而来)也是由其封装而成。
绘制的图形可以大致按照ggplot的颜色显示,但是还是感觉很鸡肋。但是matplotlib的复杂给其带来了很强的定制性。其具有面向对象的方式及Pyplot的经典高层封装。

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

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

解决具体问题:

绘制笛卡尔心型线:

代码:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

#定义参数方程
def X(a,t):
return a*(2*np.sin(t)-np.sin(2*t))

def Y(a,t):
return a * (2*np.cos(t) - np.cos(2 * t))

#绘制左半边
t1=[i for i in np.arange(-np.pi,0,0.01)]
x1=[X(80,i) for i in t1]
y1=[Y(80,i) for i in t1]
plt.title("爬山吗?")
plt.plot(x1,y1,color='r')
plt.text(-150,-50,'fairy',color='r')

#绘制右半边
t2=[i for i in np.arange(0,np.pi,0.01)]
x2=[X(80,i) for i in t2]
y2=[Y(80,i) for i in t2]
plt.plot(x2,y2,color='b')
plt.text(150,-50,'truth',color='b')
plt.show()

图:

图像处理:

代码:

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='r',label="$exp-dacay$",linewidth=3)
plt.axis([0,6,0,1.8])
ix=(x>0.8)&(x<3)
plt.fill_between(x,y,0,where=ix,facecolor='blue',alpha=0.5)
plt.text(0.5*(0.8+3),0.2,r"$\int_a^b f(x)\mathrm{d}x$",horizontalalignment='center')
plt.legend()
plt.show()

图像: