目录
1、常用库
2、shape与reshape,dtype
3、range、arange、linspace、logspace
4、数组的计算、切片
5、绘图基本设置
6.三维绘图
1、常用库
numpy、scipy、matplotlib、math
2、shape与reshape,dtype
https://blog.csdn.net/qq_45769063/article/details/106541141
dtype可以控制输出的格式
np.linspace(start,end,point_num,dtype = np.type)
3、range、arange、linspace、logspace
range(start,end,step)
numpy.arange(start,end,step)
等差数列,根据起始与终值和数字数目进行创建
numpy.linspace(start,end,point_number)
等比数列,start为等比数列第一个数值的指数,end表示最后一个数值的指数
numpy.logspace(start,end,point_number,endpoint=False,Base=10)endpoint=True:用于控制是否包含终点的值,默认为FalseBase=n,表示等比数列是以n为底的等比数列,通过logspace是定义了以n为底数的指数形式
4、数组的计算、切片
a.reshape((-1,1))表示将a数组转化为一列的数组即列向量a[a>0.5]输出a数组中大于0.5的数字print(a>0.5)打印出来的是布尔数值,大于0.5为True,小于0.5为falsef = 行向量(1,m) + 列向量(n,1) #得到一个(m,n)的数组
a[[0,1,2],[2,3,4]]表示取第0,1,2行和第2,3,4列交叉处的数据a[4,[1,2,3]]表示取第4行与第1,2,3列交叉的数据以上取出来的数据重组返回的是一个一维数组
去重numpy.unique(a)不管a是几维数组,先将数组a中的数据全部拉长为行向量,再进行去重,得到一个行向量np.array(list(set([tuple(t) for t in a])))利用set集合没有重复元素的特性进行去重[tuple(t) for t in a]将a数组的元素取出转换为元组set([tuple(t) for t in a])将元组放入集合中,自动去重list(set([tuple(t) for t in a]))将集合转化为列表array(list(set([tuple(t) for t in a])))将列表转化为数组
5、绘图基本设置
import math
from matplotlib import pyplot as plt
import matplotlib as mpl
import numpy as np#绘图
mpl.rcParams["font.sans-serif"]=[u"simHei"]#保证标题能够以中文的形式输出
mpl.rcParams["axes.unicode_minus"]=False#保证坐标值能够以负数的形式输出
mu = 0
sigma = 1#定义常熟
x = np.linspace(mu-sigma*3,mu+sigma*3,51)
y = np.exp(-(x-mu)**2/(2*sigma**2))/(math.sqrt(2*math.pi)*sigma)#定义相应的变量以及因变量的值
print (x.shape)
print("x=\n",x)
print(y.shape)
print("y=\n",y)#打印变量以及因变量的大小以及数值
plt.figure(facecolor="w")#定义绘图的背景色
plt.plot(x,y,"r-",x,y,"go",linewidth = 2,markersize=8)#绘制粗2mm的红色实线以及8size大小的绿色圆标记号的图
plt.xlabel("X",fontsize = 20)
plt.ylabel("Y",fontsize = 20)#定义x,y的标签名称大小
plt.title("高斯分布",fontsize = 18)#定义绘图的标题以及文字大小
plt.grid(True)#控制绘图时网格的绘制与否
plt.show()#窗口绘制的显示
心形图
#心形图
t = np.linspace(0,2*np.pi,100)
x =16*np.sin(t)**3
y = 13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-1*np.cos(4*t)
plt.figure(facecolor='w')
plt.plot(x,y,"r-",label = "heart")#为曲线设置label标签
plt.legend(loc="upper right")#指定图例的位置
plt.grid(True)
plt.savefig("heart.png")#将图片保存到编程的文件夹中
plt.show()
6.三维绘图
x,y = np.ogrid[-3:3:7j,-3:3:7j]表示x生成为-3到3的7个均布数字组成的列向量y生成-3到3的7个均布数字组成的行向量[[-3.][-2.][-1.][ 0.][ 1.][ 2.][ 3.]][[-1. 0. 1. 2. 3. 4. 5.]]
x,y = np.mgrid[-3:3:7j,-1:5:7j]
print(x)
print(y)列和行向量的扩展填充[[-3. -3. -3. -3. -3. -3. -3.][-2. -2. -2. -2. -2. -2. -2.][-1. -1. -1. -1. -1. -1. -1.][ 0. 0. 0. 0. 0. 0. 0.][ 1. 1. 1. 1. 1. 1. 1.][ 2. 2. 2. 2. 2. 2. 2.][ 3. 3. 3. 3. 3. 3. 3.]][[-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.][-1. 0. 1. 2. 3. 4. 5.]]