一、numpy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。运用时一般用以下方法导入

import numpy as np

numpy常用方法

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
numpy方法 解释
np.array(l) 把l转化成数组,l可以是列表,元组或range对象
np.arange(x,y,z) 类似于np.array(x,y,z)
np.linspace(x,y,z) 等差数组,从x到y,共z个元素
np.linspace(0, 10, 11, endpoint=False) 不包含终点
np.logspace(x,y,z,base) 对数数组,相当于base**np.linspace(x,y,z)
np.zeros(x)或np.zeros((x,y)) 生成元素全为0的一行x列或x行y列数组
np.ones(x)或np.ones((x,y)) 生成元素全为1的一行x列或x行y列数组
np.identity(x) x行x列的单位矩阵
np.dot(a,b) a,b均为数组,返回a与b的内积
np.sin(l) 对数组l的每个元素求正弦值
np.cos(l) 对数组l的每个元素求余弦值
np.round(l) 对数组l的每个元素四舍五入
np.floor(x) 对数组l的每个元素向上取整
np.ceil(x) 对数组l的每个元素向下取整
l.shape(x,y) 把数组l改为x行y列数组,x或y=-1表示自动运算
l.reshape(x,y) l.shape(x,y)方法返回新的数组
a[x:y:z] 从x到y,步长为z逐个取元素
np.random.rand(x) 返回包含x个随机数的数组
np.where(x<5, 0, 1) x为数组,其中元素值小于5的对应0,其他对应1
np.piecewise(x, [x<4, x>7], [lambda x:x*2, lambda x:x*3]) x为数组,小于4的元素乘以2,大于7的元素乘以3,其他元素变为0
np.bincount(x) x为数组,从最小值到最大值返回元素出现次数
np.sum() 数组长度
np.unique(x) 返回数组x中唯一元素值
a_mat=np.matrix(list) 以列表list创建矩阵
a_mat.T 矩阵转置
a_mat.shape 矩阵形状
a_mat.size 元素个数
a_mat.mean() 元素平均值
a_mat.sum() 所有元素之和
a_mat.max() 最大值
a_mat.max(axis=1) 横向最大值
a_mat.max(axis=0) 纵向最大值
a_mat.argsort(axis=0) 纵向排序后的元素序号
a_mat.argsort(axis=1) 横向排序后的元素序号
a_mat.diagonal() 矩阵对角线元素
a_mat.sum(axis=0) 纵向求和
a_mat.sum(axis=1) 横向求和
x.mean() 平均值
x.max() 元素最大值
x.std() 标准差
x.var() 方差

二、matplotlib 是 Python 2D-绘图领域使用最广泛的套件。它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

 1.pylab接口是由matplotlib.pylab提供的函数集,允许用户使用非常类似于MATLAB图生成代码的代码创建绘图

 2.matplotlib前端或API是一组重要的类,可创建和管理图形,文本,线条,图表等,是一个对输出无所了解的抽象接口

 3.后端是设备相关的绘图设备,也称为渲染器,将前端表示转换为打印件或显示设备;后端示例:PS 创建 PostScript® 打印件,SVG 创建可缩放矢量图形打印件,Agg 使用          Matplotlib 附带的高质量反颗粒几何库创建 PNG 输出,GTK 在 Gtk+ 应用程序中嵌入 Matplotlib,GTKAgg 使用反颗粒渲染器创建图形并将其嵌入到 Gtk+ 应用程序中,以  及      用于 PDF,WxWidgets,Tkinter 等

三、成绩表

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 = 7 #边数
data = np.array([70,100,96.7,100,110,70,0]) #数据值
angles = np.linspace(0,2*np.pi,nAttr,endpoint=False) #角度设置,0-2PI,分隔7次
data = np.concatenate((data,[data[0]]))  #将数据和角度的数组首尾闭合,便于用plot函数绘制
angles = np.concatenate((angles,[angles[0]]))
fig = plt.figure(facecolor="white")   #图形外的周边颜色
plt.subplot(111,polar=True)    #建立极坐标系的子分区
plt.plot(angles,data,'bo-',color='blue',linewidth=2) #按照角度和数据画出不规则多边形
plt.fill(angles,data,facecolor='g',alpha=0.25)  #填充颜色
plt.thetagrids(angles*180/np.pi,labels)  #设置标签
plt.figtext(0.52,0.95,'ZTML的成绩表',ha='center') #设置标题
plt.grid(True)
plt.savefig('dota_radar.JPG')
plt.show()

结果如下

numpy和matplotlib画图 随笔 第1张

 三、重力与质量的关系

import numpy as np
import pylab as pl
import matplotlib.font_manager as fm
myfont = fm.FontProperties(fname='C:/Windows/Fonts/simfang.ttf')
t = np.arange(0.0, 100.0, 15.0)
s = 9.8*t
pl.plot(t, s, label='G-m')
pl.xlabel('m-质量', fontproperties='STKAITI', fontsize=18)
pl.ylabel('G-重力', fontproperties='simhei', fontsize=18)

pl.title('G-m图像', fontproperties='STLITI', fontsize=24)
pl.legend(prop=myfont)
pl.show()

numpy和matplotlib画图 随笔 第2张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄