一、学习笔记
Numpy和matplotlib学习
三角函数
NumPy 提供了标准的三角函数:sin()、cos()、tan()
arcsin,arccos,和 arctan 函数返回给定角度的 sin,cos 和 tan 的反三角函数。
这些函数的结果可以通过 numpy.degrees() 函数将弧度转换为角度。
numpy.around() 函数返回指定数字的四舍五入值。
numpy.around(a,decimals)
numpy.floor()
numpy.floor() 返回数字的下舍整数。
numpy.ceil()
numpy.ceil() 返回数字的上入整数。
NumPy 算术函数包含简单的加减乘除: add(),subtract(),multiply() 和 divide()。
需要注意的是数组必须具有相同的形状或符合数组广播规则。
此外 Numpy 也包含了其他重要的算术函数。
numpy.reciprocal()
numpy.reciprocal() 函数返回参数逐元素的倒数。如 1/4 倒数为 4/1。
numpy.power()
numpy.power() 函数将第一个输入数组中的元素作为底数,计算它与第二个输入数组中相应元素的幂。
numpy.mod()
numpy.mod() 计算输入数组中相应元素的相除后的余数。 函数 numpy.remainder() 也产生相同的结果。
NumPy 提供了很多统计函数,用于从数组中查找最小元素,最大元素,百分位标准差和方差等。 函数说明如下:
numpy.amin() 和 numpy.amax()
numpy.amin() 用于计算数组中的元素沿指定轴的最小值。
numpy.amax() 用于计算数组中的元素沿指定轴的最大值。
numpy.ptp()
numpy.ptp()函数计算数组中元素最大值与最小值的差(最大值 - 最小值)。
numpy.percentile()
百分位数是统计中使用的度量,表示小于这个值的观察值的百分比。 函数numpy.percentile()接受以下参数。
numpy.median()
numpy.median() 函数用于计算数组 a 中元素的中位数(中值)
numpy.mean()
numpy.mean() 函数返回数组中元素的算术平均值。 如果提供了轴,则沿其计算。
算术平均值是沿轴的元素的总和除以元素的数量。
numpy.average()
numpy.average() 函数根据在另一个数组中给出的各自的权重计算数组中元素的加权平均值。
该函数可以接受一个轴参数。 如果没有指定轴,则数组会被展开。
加权平均值即将各数值乘以相应的权数,然后加总求和得到总体值,再除以总的单位数。
考虑数组[1,2,3,4]和相应的权重[4,3,2,1],通过将相应元素的乘积相加,并将和除以权重的和,来计算加权平均值。
初级绘制
这一节中,我们将从简到繁:先尝试用默认配置在同一张图上绘制正弦和余弦函数图像,然后逐步美化它。
第一步,是取得正弦函数和余弦函数的值:
from pylab import * X = np.linspace(-np.pi, np.pi, 256,endpoint=True) C,S = np.cos(X), np.sin(X)
X 是一个 numpy 数组,包含了从 −π 到 +π 等间隔的 256 个值。C 和 S 则分别是这 256 个值对应的余弦和正弦函数值组成的 numpy 数组。
你可以在 IPython 的交互模式下测试代码,也可以下载代码(下载链接就是这些示例图),然后执行:
Matplotlib 的默认配置都允许用户自定义。你可以调整大多数的默认配置:图片大小和分辨率(dpi)、线宽、颜色、风格、坐标轴、坐标轴以及网格的属性、文字与字体属性等。不过,matplotlib 的默认配置在大多数情况下已经做得足够好,你可能只在很少的情况下才会想更改这些默认配置。
import numpy as np import matplotlib.pyplot as plt X = np.linspace(-np.pi, np.pi, 256, endpoint=True) C,S = np.cos(X), np.sin(X) plt.plot(X,C) plt.plot(X,S) plt.show()
二、成绩雷达图
import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib.rcParams['font.family']='SimHei'#方便中文能够显示出来 matplotlib.rcParams['font.sans-serif']=['SimHei'] labels=np.array(['第二次作业','第三次作业','第四次作业','第五次作业'])#标签名 nAttr=4#雷达图中六边形边数 data = np.array([9,9,10,9])#雷达图中标签的数据值 angles = np.linspace(0,2*np.pi,nAttr,endpoint=False)#一哥标签点到另一个标签点画笔所需旋转的角度值,取决于nAttr的大小 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='g',linewidth=2)#画出雷达图中不规则的六边形 plt.fill(angles,data,facecolor='g',alpha=0.25)#填充半透明颜色,即不规则的六边形颜色 plt.thetagrids(angles*180/np.pi,labels)#为雷达图设置标签,就是labels里的文字 plt.figtext(0.52,0.95,'菜鸡——成绩表',ha='center')#命名雷达图的名字 plt.grid(True) plt.savefig('作业成绩雷达图.JPG')#保存雷达图的图片 plt.show()
三、公开课成绩