python3.8自带matlop和numpy吗_Python 科学计算(draft)

Python 科学计算(draft)

未分类

Python 是一门面向对象的动态语言,有很广泛的应用,近年在科学计算领域也越来越流行。

Python 本身和C、Java一样,是一门通用程序语言。它的一大特点或者说优势是,有丰富强大的库来处理各种专门问题,比如科学计算。

想大致了解如何用Numpy等包工作,相对matlab、idl等商业软件有何优劣,可以先看看这篇科学计算工具和工作流。

大致说来,python的主要优点在于:免费、易用、强大、通用性好、扩展性强。缺点可能在于速度,不过它已经相当快了,而且很容易加速。

python常用包

通用:ipython

科学计算与画图:numpy,scipy,matplotlib

天文:astropy

图形IDE:spyder

安装

安装有不同选择:

通过发行版安装

类似于linux,python也有不同的发行版,通常会包括科学计算常用的包。虽然有些包可能用不到,但比起自己编译来可大大节省了时间[1]。

Anaconda 首选,里面的包都很新,想提速的话学生还可以申请mkl加速。

[yt][] 如果你用的是ia64系统[^ia64],优先考虑yt。yt提供的安装脚本,会自动从网上下载相关的包及其依赖编译安装[2]。

另外可能选择参考[这里][scipy-dist]

通过系统包管理软件安装

一般的linux系统都会自带Python,所以只需考虑安装需要的库就好了。

在ubuntu下常用的库安装很方便:

sudo apt-getinstall python-numpy python-scipy python-matplotlib ipython

通过Python pip安装

不过一般来说ubuntu的源更新的很慢,你需要用到某些包的新版本功能的话,可以通过python的包管理软件pip安装或升级。例如升级Numpy:

sudo pip install--upgrade numpy

通过源文件安装

认真阅读安装说明,先解决依赖关系。

学习

网络上的资源很丰富,其实可以不用买书了。

Python基础

可以先看看Python的创造者Guido van Rossum写入门指南《Python入门》,非常简略,可以快速熟悉python的基本概念与语法。

更详细一点的可以参考《A byte of Python》(中文版:《简明 Python 教程》)。

同时强力推荐网站Online Python Tutor,以图形化的形式逐步显示程序的运行过程,非常有助理解,堪称神器。尤其是初遇引用、命名空间这些概念时,记得去这里看看。

如果要买书的话可以考虑《Python基础教程》。

Numpy

reverland翻译了一篇《[试验性NumPy教程][]》

张若愚写了一本《[Python科学计算][]》

Matplotlib

画图可以参考 [Matplotlib Tutorial][]([中文版][])上手。

不知该用什么命令里去看看 [示例图集][gallery],也许会有跟你想要的类似的图。

idl使用者

这里有一份idl与python的命令对照表。(顺便广告一下,idl有个开源实现叫gdl)

其他有需要的时候查手册吧。

工作环境

交互

ipython

ipython notebook

脚本

加速

首选可能是Cython。

如果要用fortran,首选是f2py

现在Pypy和Numba也是非常热门的选择,对代码不需要或只需少量修改就可以得到1~2个量级上的提速。

我现在会用Cython重写循环较多的函数,比如分析数值模拟时用到的linklist。

之前也用过f2py,不知道为什么特别慢,怀疑是某处数组操作导致了数据复制或转置,一直没有解决。

天文资源

这里有一个天文资源[列表][astro python resource list]。

其它参考网站

顺便把找到的一些网站贴在下面:

python使用

profile

安装

sudo pip install line-profiler memory_profiler psutil

使用参考

%load_ext line_profiler

%load_ext memory_profiler

%time & %timeit: See how long a script takes to run (one time, or averaged over a bunch of runs).

%prun: See how long it took each function in a script to run.

%lprun: See how long it took each line in a function to run.

%mprun & %memit: See how much memory a script uses (line-by-line, or averaged over a bunch of runs).

[1]试过的同学都知道手动编译时,解决依赖关系那个痛苦,不堪回首。 ↩

[2]http://yt-project.org/

[^ia64]: 可能因为ia64用户较少,Anaconda、Canopy等常见发行版都不支持 ia64

[^yt]: 它还是分析simulation的工具。 ↩

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值