可视化科学计算笔记

  • 导入和初始化设置
  • SciPy库
    • leastsq函数——数据拟合
    • interp2d函数——插值优化
    • medfilt函数——信号处理(滤波)
  • Mayavi库
    • 空间曲面
    • ……
  • 参考资料

主要使用SciPy库和Mayavi库

  • SciPy库:Numpy为科学计算专门构建
  • Mayavi库:基于VTK/TVTK的上层库,屏蔽了流水线,黑盒子操作

导入和初始化设置

import numpy as npy
pyt.rcParams['font.sans-serif'] = ['SimHei']               # 正常显示中文
pyt.rcParams['axes.unicode_minus'] = False           # 正常显示坐标值负号



SciPy库

要发挥numpy库的优势,一般使用 数组变量 来处理数据

leastsq函数——数据拟合

from scipy. import leastsq               #leastsq是子库optimize的一个用于拟合的函数
import matplotlib.pyplot as pyt
mylsq = leastsq(误差计算函数(需要自定义), 初始拟合参数(一个列表), args = (实验数据数组, x))

args 为需要拟合的函数
用 leastsq函数进行拟合,返回一个tuple,其中第一维是一个列表,第二个是一个数字(未知用途)
返回的列表就是自定义函数myfun中的参数,定义了几个就返回几个

pyt.plot(x, myfunc(x, mylsq[0]), 'g', label = u'拟合数据', linewidth = 1.2)        #show出来

myfun是一个理论计算函数,计算理论数据的,由用户自定义。
这里使用拟合出来的列表去计算拟合后的函数(实际也是一个数组)

下面给出一个更简单的一次函数线性拟合实例:

def myfunc(x, a): # 计算一次函数,没有b值,过零点;a是一个列表,长度取决于计算理论结果需要的参数k = areturn k*x
def deviation(a, y, x):     # 误差计算函数,根据不同的误差方法得出,因人而异,return y - myfunc(x, a)
x = npy.linspace(-npy.pi, npy.pi, 1000)            #生成自变量数组
k = [5]                                        # 理论的斜率
f0 = myfunc(x, k)                              # 理论结果
f1 = f0 + 0.3 * npy.random.randn(len(x))        # 实验结果(人为制造噪声)
a0 = [4]# 初始拟合参数(这个不知道是什么,貌似是精度之类?,本人试了很多不同值,得到的结果偏差不大)# 开始拟合
mylsq = leastsq(deviation, a0, args = (f1, x))
pyt.plot(x, f0, 'y--', label = u'理论数据', linewidth = 3.1)
pyt.plot(x, f1, 'b', label = u'实验数据', linewidth = 0.5)
pyt.plot(x, myfunc(x, mylsq[0]), 'g', label = u'拟合数据', linewidth = 1.2)

上面的k、a0等都使用列表来表示,是因为myfun里允许列表和数组相乘运算(貌似是这样),尽管列表中单个数值时,直接赋值“k = a”得到的k是一个列表,但是运算结果没有区别;同时使用列表表示使得该模板程序通用性更强。

interp2d函数——插值优化

from scipy import interpolate    #interp2d是子库interpolate的一个函数
def myfunc(x, y):return npy.sin(npy.sqrt(x**2 + y**2))
val_old = myfunc(x, y)          # 计算每个网格点上的函数值
myfunc_new = interpolate.interp2d(x, y, val_old, kind = 'linear')

根据原本的x,y,与原本的结果数组来生成新的函数
这里的val_old是一个矩阵数组,表示函数计算出的所有值

val_new = myfunc_new(x_new, x_new)

新函数内放进新的坐标值,计算结果

medfilt函数——信号处理(滤波)

from scipy import signal
s0[npy.random.randint(0, len(t), 100)] += npy.random.standard_normal(100)*0.2
s1 = signal.medfilt(s0, 7)

s0是构造出来的加上误差的函数,直接把s0放进去,后面的数字7代表过滤程度,貌似不能超过10?1基本就没有滤波效果了

Mayavi库

空间曲面

有空再写

……

有空再写

参考资料

【CSDN】Scipy中最小二乘函数leastsq()简单使用.
【博客园】Python闲谈(二)聊聊最小二乘法以及leastsq函数.

【Python】可视化科学计算笔记相关推荐

  1. 【转】5.3 Python的科学计算包 - Numpy

    numpy(Numerical Python extensions)是一个第三方的Python包,用于科学计算.这个库的前身是1995年就开始开发的一个用于数组运算的库.经过了长时间的发展,基本上成了 ...

  2. python科学计算基础教程pdf下载-用Python做科学计算 高清晰PDF

    用Python做科学计算一书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序 ...

  3. python科学计算基础教程pdf下载-用Python做科学计算 pdf版

    本书将介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序结合:如何编写声音.图 ...

  4. python程序设计与科学计算pdf_用Python做科学计算 pdf版

    本书将介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序结合:如何编写声音.图 ...

  5. python 科学计算设计_用Python做科学计算 高清晰PDF

    用Python做科学计算一书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序 ...

  6. python 科学计算设计_用Python做科学计算 pdf版

    本书将介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,我们还将着重介绍如何制作交互式的2D.3D图像:如何设计精巧的程序界面:如何和C语言所编写的高速计算程序结合:如何编写声音.图 ...

  7. python的科学计算库总结

    参考地址:https://www.stxnext.com/blog/most-popular-python-scientific-libraries/?utm_campaign=Pat&utm ...

  8. 使用Python进行科学计算:NumPy入门

    原创2016-08-07Jamal Moir编程派 编程派微信号:codingpy 本文由 Python 翻译组 最新翻译出品,原作者为 Jamal Moir,译者为 cystone,并由编程派作者  ...

  9. python应用实例论文_浅谈Python在科学计算中的应用

    55 SYS PRACTICE 系统实践 有效的计算工具能为工作提高效率,Python 在实际工作与 科学调研中等运用的也越来越广泛,通过专家不断的研究与分 析,通过 Python 进行科学计算是再合 ...

最新文章

  1. 【心情】期待 Mr. Jack In New York!
  2. c++构造函数以及类中变量初始化顺序
  3. XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子
  4. Qt中的QStackedLayout
  5. hdu oj1093题解
  6. 深度解读畅捷通云原生架构转型实战历程
  7. 中新赛克数据可视化_中新赛克——能否构建更安全的世界
  8. c语言中0到9的as编码c2,(全国计算机等级考试二级笔试样卷VsualBasc语言程序设计.doc...
  9. Linux多线程之线程同步(条件变量)
  10. SAP UI5 Tools 里配置文件 ui5-local.yaml 的配置要点
  11. input change获取改变之前的值和改变之后的值_科技改变游戏:玩家使用氛围灯追踪角色资源变化...
  12. 鹰眼拓扑锁定跟踪 网络管理一目了然
  13. 求职过程记录(4)——启明星出现
  14. 一文抽丝剥茧带你掌握复杂Gremlin查询的调试方法
  15. D3 scaleQuantize
  16. 学习OpenCV——BOW特征提取函数(特征点篇)
  17. 复制过去格式不一样_疫情过去后,打卡不一样的过山车
  18. 使用python自动玩游戏
  19. 基于matlab的紧急疏散模型仿真的代码,基于matlab的疏散仿真程序简介.pdf
  20. 透过西安未来人工智能计算中心,看到AI不一样的未来

热门文章

  1. 鼠标指针在微信界面消失怎么办?
  2. #Geek Talk# AI and FinTech,投资阿里巴巴的 Benson Tam 也会跟大家一起 Talk
  3. 数据库系统原理(一)引言
  4. 论文的开题报告是什么样的?
  5. 自定义POI的excel工具类-xls-xlsx
  6. 2016年年终报告总结
  7. java.lang.NoSuchMethodError: org.springframework.http.MediaType.getCharSet()Ljava/nio/charset/Charse
  8. 内存的永久保存区内存溢出解决
  9. 如何判断你的初创企业是否有募资潜力
  10. 利用COCO API测试自己数据集训练的YOLOv3模型的mAP(VOC格式数据集)