1. 插值:griddata
对二维或三维散点数据插值
vq = griddata(x,y,v,xq,yq)
使 v = f(x,y) 形式的曲面与向量 (x,y,v)
中的散点数据拟合。griddata
函数在 (xq,yq)
指定的查询点对曲面进行插值并返回插入的值 vq
。曲面始终穿过 x
和 y
定义的数据点。
vq = griddata(x,y,z,v,xq,yq,zq)
拟合 v = f(x,y,z) 形式的超曲面。
vq = griddata(___,method)
使用上述语法中的任何输入参数指定计算 vq
所用的插值方法。method
可以是 'linear'
、'nearest'
、'natural'
、'cubic'
或 'v4'
。默认方法为 'linear'
。
[Xq,Yq,vq] = griddata(x,y,v,xq,yq)
和 [
还返回 Xq
,Yq
,vq
] = griddata(x
,y
,v
,xq
,yq
,method)Xq
和 Yq
,其中包含查询点的网格坐标
lb = np.array([-5.0, 0.0]) #左下角的坐标
ub = np.array([5.0, np.pi / 2]) #右上角的坐标
data = scipy.io.loadmat('NLS.mat')
t = data['tt'].flatten()[:, None] #{narray:(201,1)}
x = data['x'].flatten()[:, None] #{narray:(256,1)}
Exact = data['uu'] #{narray:(256,201)}
T,X = np.meshgrid(t,x) # T={narray:(256,201)},X={narray:(256,201)}
U = np.abs(Exact) # U={ndarray:(256,201)}
TX_star = np.hstack((T.flatten()[:, None], X.flatten()[:, None]))
#{narray:(51465,2)}
U_pred = griddata(TX_star, U.flatten(), (T, X), method='cubic')
#根据XT_star和U.flatten()的对应关系,对(X,T)位置进行插值,U_pred={ndarray:(256,201)}
plt.imshow(U_pred, interpolation='nearest', cmap='YlGnBu', extent=[lb[1], ub[1], lb[0], ub[0]],origin='lower', aspect='auto') #显示U_pred,
plt.colorbar()
plt.show()
2. imshow():热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。Python在Matplotlib库中,调用imshow()函数实现热图绘制。
import numpy as np
import matplotlib.pyplot as plt
data = np.linspace(1,15,2500)
data.resize(50, 50)
data
#plt.imshow(data,interpolation='nearest',cmap = 'YlGnBu',extent=[0,15,0,15])
plt.imshow(data,cmap = 'YlGnBu',extent=[0,15,0,15])
plt.colorbar()
plt.xlabel('x')
plt.ylabel('y')
plt.title('U(x,y)'
plt.show()
3. numpy生成随机数列
# 生成随机数/数列
>>> import numpy as np
>>> np.random.random(1)
array([0.42426594])
>>> np.random.random(10)
array([0.36304824, 0.80458524, 0.0056266 , 0.97748616, 0.91748893,
0.79876095, 0.0248794 , 0.10963302, 0.29487573, 0.79505157])
#生成指定范围内的随机整数(列)
>>> import numpy as np
>>> np.random.randint(0,10)
8
>>> np.random.randint(0,10,8)
array([4, 1, 6, 8, 4, 1, 1, 2])
4. append() 方法
用于在列表末尾添加新的对象。
ls=[2]
print(ls)
def func():
ls.append(3)
return ls
a=func()
print(a)
》[2]
》[2,3]