1.1 Python科学计算生态

1.1.1 为什么使用python

1.1.1.1 科学家的需求

  • 获取数据(模拟、实验控制)
  • 操作和处理数据
  • 可视化结果、快速理解、绘制高质量图片,可用于报告或者出版。

1.1.1.2 python的优点

  • 不需要重新发明轮子:包含一系列丰富的数值计算、画图、数据处理的工具集合。我们不需要重新编写代码来勾画曲线,不需要重新编码傅里叶变换和拟合函数。一切都是现成的,可调用的。
  • 易于学习:对于很多问题,不需要太多的学习成本呢,可以快速入手。
  • 易于交流:python语法很简单,避免奇怪的符号或冗长的程序规范,其可读行很强。
  • 代码高效:python的数值模块计算非常高效,如果花太长的时间写代码换来的执行快速的代码是没有用的,python的目的是开发时间短、执行时间快。
  • 通用性:现在python被用于很多不同的问题当中。对于新的问题,无需再学习一门新的语言。

简言之:
1、有丰富的科学计算包
2、逻辑清晰、容易编写、容易阅读、有良好的结构,we code what we think
3、除了科学计算包,还支持其他的包,比如说网页服务、序列端口访问等。
4、免费并开源、被广泛传播、社区充满活力。
5、强大的工作环境:ipython、pycharm、spader、jupyter notebook等。

  • 缺点:并不是所有的算法都能在工具包中找到。

1.1.2 python计算科学生态

a. python:一个通用并且现代的计算语言:

  • 语言:流控制(if、else)、数据类型(string、int)、数据集合(list,dict)
  • 标准库的模块:字符串处理、文件管理、简单的网络协议。
  • 大量的专业模块或用Python编写的应用程序:web框架,等等…和科学计算。
  • 开发工具(自动测试、文档生成)

b. 核心数值库:

  • Numpy:以矩阵为基础的数学计算模块。
  • Scipy:更高级的数值计算,优化、回归、插值。
  • Matplotlib:2D可视化

c. 更高阶的交互环境:

  • ipython
  • jupyter

d. 领域特定的包:

  • Mayavi:三维可视化
  • pandas, statsmodels, seaborn:用于统计
  • sympy:用于符号计算
  • scikit-image:用于图像处理
  • scikit-learn:用于机器学习

1.1.3 开始前:安装工作环境

  • 安装Anaconda即可。Anaconda是专注于数据分析的Python发行版本,包含了conda、Python等190多个科学包及其依赖项。

1.4 工作流

  • 交互式:ipython、jupyter notebook
  • 文本编辑器:Spyder、Pycharm

1.5 Ipython和jupyter使用技巧

  • %cpaste:粘贴代码,尤其从网页粘贴代码
  • %timeit:计时
  • %debug:允许进入后调试
补充学习:优化代码和调试代码。

http://www.scipy-lectures.org/advanced/optimizing/index.html#optimizing-code-chapter
http://www.scipy-lectures.org/advanced/debugging/index.html#debugging-chapter

猜你喜欢

转载自blog.csdn.net/weixin_33862514/article/details/87430856
1.1
今日推荐