科学计算库学习报告
一、numpy库 —— 用于处理含有同种元素的多维数组运算的第三方库
常用 >>>import numpy as np 引用numpy库,在程序的后续部分中用np代替numpy。
1. numpy库常用的创建数组函数
2. ndarray类的常用属性
创建一个简单的数组后,可以查看ndarray类型的一些属性
属性 | 描述 |
ndarray.ndim |
数组轴的个数,也被称作秩 |
ndarray.shape | 数组在每个维度上大小的整数元组 |
ndarray.size |
数组元素的总个数 |
ndarray.dtype | 数组元素的数据类型,dtpye类型可以用于创建数组中 |
ndarray.itemsize | 数组中每个元素的字节大小 |
ndarray.data | 包含实际数组元素的缓冲区地址 |
ndarray.flat | 数组元素的迭代器 |
3. ndarray 类的形态操作方法
方法 | 描述 |
ndarray.reshape(n,m) | 不改变数组ndarray,返回一个维度为(n,m)的数组 |
ndarray.resize(new_shape) | 与reshape()作用相同,直接修改数组ndarray |
ndarray.swapaxes(ax1,ax2) | 将数组n个维度中任意两个维度进行调换 |
ndarray.flatten() | 对数组进行降维,返回一个折叠后的一维数组 |
ndarray.ravel() | 作用同np.flatten(),但是返回数组的一个视图 |
4. numpy库的算数运算函数
5.numpy库的比较运算函数
其将返回 一个布尔数组,它包含两个数组中对应元素值的比较结果,例:
6. numpy库的其他运算函数
函数 | 描述 |
np.abs(x) | 计算基于元素的整型、浮点型、复数的绝对值 |
np.sqrt(x) | 计算每个元素的平方根 |
np.squre(x) | 计算每个元素的平方 |
np.ceil(x) | 计算大于或等于每个元素的最小值 |
np.floor(x) | 计算小于或等于每个元素的最大值 |
np.rint(x[,out]) | 取每个元素最近的整数并保留数据类型 |
np.sin/np.cos/np.tan(x*np.pi/180) |
利用*np.pi/180转化为弧度, 求每个元素的正弦值/余弦值/正切值 |
np.sign(x) | 计算每个元素的符号:1(+),0,-1(-) |
np.exp(x,[,out]) |
计算每个元素的e**x |
np.log(x),np.log10(x),np.log2(x) | 计算对数 |
二、matplotlib库 —— 提供数据绘画功能的第三方库
其pyplot子库主要用于实现各种数据展示图形的绘制,提供了一批操作和绘图函数,每个函数代表对图像进行的一个操作。引用方式: >>>import matplotlib.pyplot as plt, 在后续程序中用plt代替matplotlib.pyplot。
1.plt库的绘图区域函数
函数 | 描述 |
plt.figure(figsize=(width,height),facecolor=None) |
创建一个全局绘图区域,使其成为当前的绘图对象, figsize参数可以指定绘图区域的宽度和高度,单位为英寸。 |
plt.sublot(nrows,ncols,plot_number) |
在全局绘图区域内创建子绘图区域,其参数将全局绘图区域 分成nrows行和ncols列,并在plot_number区域生成一个坐标系。 |
plt.axes(rect,axisbg = 'w') |
创建一个坐标系风格的子绘图区域,参数rect=[left,bottom,width,height] 中四个变量的范围为(0,1);axisbg指背景色,默认为white。 |
plt.subplots_adjust() |
调整子绘图区域的布局 |
2.plt库的读取和显示函数
3.plt库的基础图表函数
操作 | 描述 |
plt.polt(x,y,label,color,linewidth) |
根据x,y数组绘制直\曲线; label表示设置标签并在图例(legend)中显示; color表示曲线颜色,linewidth表示曲线宽度。 |
plt.boxplot(data,notch,position) | 绘制一个箱型图(Box-plot) |
plt.bar(left,height,width,bottom) | 绘制一个条形图 |
plt.barh(bottom,width,height,left) | 绘制一个横向条形图 |
plt.polar(theta,r) | 绘制极坐标图 |
plt.pie(data,explode) | 绘制饼图 |
plt.psd(x,NFFT=256,pad_to,Fs) | 绘制功率谱密度图 |
plt.specgram(x,NFFT=256,pay_to,F) | 绘制谱图 |
plt.cohere(x,y,NFFT=256,Fs) | 绘制X—Y的相关函数 |
plt.scatter() | 绘制散点图 |
plt.step(x,y,where) |
绘制步阶图 |
plt.hist(x,bins,normed) | 绘制直方图 |
plt.contour(X,Y,Z,N) | 绘制等值图 |
plt.vlines() | 绘制垂直图 |
plt.stem(x,y,linefmt,markerfmt,basefmt) | 绘制曲线每个点到水平轴线的垂线 |
plt.plot_date() | 绘制数据日期 |
plt.plotfile() | 绘制数据后写入文件 |
例:
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np.exp(-x)+0.8 plt.plot(x,y,'k',color='r',linewidth=3,linestyle="-") plt.show()
结果示例:
三、雷达图绘制 —— 2019310143137
import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = 'SimHei' name = [' 第一周作业',' 第二周作业','第三周作业','第四周作业','第五周作业','第六周作业'] #标签 theta = np.linspace(0,2*np.pi,len(name),endpoint=False) #将圆根据标签的个数等比分 value = [62.5,87.9,100,100,100,87.5] theta = np.concatenate((theta,[theta[0]])) #闭合 value = np.concatenate((value,[value[0]])) #闭合 ax = plt.subplot(111,projection = 'polar') #构建图例 ax.plot(theta,value,'m-',lw=1,alpha = 0.75) #绘图 ax.fill(theta,value,'m',alpha = 0.75) #填充 ax.set_thetagrids(theta*180/np.pi,name) #替换标签 ax.set_ylim(0,100) #设置极轴的区间 ax.set_theta_zero_location('N') #设置极轴方向 ax.set_title('Mindf的成绩表',fontsize = 25) #添加图标题 plt.show()
结果显示