目录
numpy、scipy、pandas、matplotlib读书报告
numpy、scipy、pandas、matplotlib读书报告
-
引言
面对庞大的数据集,我们可以使用pandas来处理和分析数据;接着我们可以使用numpy读取、处理和操作图像数组;scipy的ndimage模块提供了许多图像处理和分析功能,如图像滤波、旋转、缩放、二值化等功能,可以帮助我们预处理和分析图像数据;然后将处理后的数据传递给matplotlib来绘制各种图表进行可视化。
-
基本函数用法
-
Numpy:
Numpy主要用于处理大型多维数组和矩阵,并提供大量的数学函数来操作这些数组。可使用numpy计算数组的平均值、标准差、最大值、最小值等。
我创建了一个一维数组,并计算其均值。如:
图2.1.1
-
Scipy:
Scipy提供了许多数学算法和函数,包括优化、线性代数、积分、插值、特殊函数、快速傅里叶变换等。可使用scipy求解线性方程组、进行数值积分和插值操作。
我创建了一个二维数组(二阶矩阵),并计算其行列式和逆。如:
图2.2.1
-
Pandas:
Pandas提供了DataFrame和Series两种数据结构,可以方便地处理和分析表格型数据。
我分别创建了两个CSV文件price2016bj.csv和price2016.csv ,内容如下:
图2.3.1
图2.3.2
使其显示文件前几行数据,如下图
图2.3.3
图2.3.4
-
Matplotlib:
Matplotlib可以绘制各种静态、动态、交互式的图表。如绘制折线图、散点图、柱状图、饼图等常见图表,并介绍图表的定制和美化。
我定义了下x,y的数据,使用plot函数绘制折线图并显示其图形。
图2.4.1
-
应用
-
具体问题——霍兰德人格分析
-
图像处理
-
【代码源于课本,需注意:
plt.thetagrids
函数不支持frac
这个关键字参数,去掉即可】 -
#e19.2DrawHollandRadar import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei' matplotlib.rcParams['font.sans-serif'] = ['SimHei'] radar_labels = np.array(['研究型(I)','艺术型(A)','社会型(S)','企业型(E)','常规型(C)','现实型(R)']) nAttr = 6 data = np.array([[0.40, 0.32, 0.35, 0.30, 0.30, 0.88], [0.85, 0.35, 0.30, 0.40, 0.40, 0.30], [0.43, 0.89, 0.30, 0.28, 0.22, 0.30], [0.30, 0.25, 0.48, 0.85, 0.45, 0.40], [0.20, 0.38, 0.87, 0.45, 0.32, 0.28], [0.34, 0.31, 0.38, 0.40, 0.92, 0.28]]) #数据值 data_labels = ('工程师', '实验员', '艺术家', '推销员', '社会工作者','记事员') angles = np.linspace(0, 2*np.pi, nAttr, endpoint=False) data = np.concatenate((data, [data[0]])) angles = np.concatenate((angles, [angles[0]])) fig = plt.figure(facecolor="white") plt.subplot(111, polar=True) #plt.plot(angles,data,'bo-',color ='gray',linewidth=1,alpha=0.2) plt.plot(angles,data,'o-', linewidth=1.5, alpha=0.2) plt.fill(angles,data, alpha=0.25) plt.thetagrids(angles[:nAttr]*180/np.pi, radar_labels) plt.figtext(0.52, 0.95, '霍兰德人格分析', ha='center', size=20) legend = plt.legend(data_labels, loc=(0.94, 0.80), labelspacing=0.1) plt.setp(legend.get_texts(), fontsize='small') plt.grid(True) plt.show()