griddata()、imshow()、append()、np.random()(0414工作日志)

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]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值