Pages

Wednesday, 20 December 2017

安装基于python的科学计算软件

Mac安装: 先安装homebrew
然后
brew install python --framework --universal #fw是告诉是一个框架用于安装别的东东.universal是32/64都装
easy_install pip  ##可能已经会安装上了

## 以下是科学计算一般需要的库
pip install numpy
pip install scipy
pip install ipython
pip install matplotlib
pip install pandas
pip install sympy
pip install nose

ipython

这是个替代传统默认python终端的终端,优点相比传统idle优点多多:
  1. 支持tab补全属性/函数/变量.
  2. 支持函数/方法参数直接提示.
  3. 非python标准的输入和控制,例如%神奇命令以及!外部命令

安装

有很多安装方式.最常用方便是pip安装方法.也可以利用软件包安装管理工具来安装.可以参考.
  • 使用pip安装:
一般现在的python安装包都会安装上pip, unix基础的更加常装上了. Window安装setuptool和pip参考
在window下运行pip需要在dos下运行python -m pip install package (python -m pip ) 如果把 python/Scripts 加入到环境变量可以直接运行pip install package, 这里安装ipython所以pip install ipython
pip install ipython
pip install "ipython[notebook]"
pip install pyreadline
要是装有但有问题,可以用pip install ipython --upgrade 来升级
PS: 要是提示以下就要安装后面的pyreadline,否则可以不装. 这个pyreadline可以使得ipython支持tab补全等. 比较重要.
WARNING: Readline services not available or not loaded.
WARNING: Proper color support under MS Windows requires the pyreadline library.
You can find it at:
http://ipython.org/pyreadline.html
  • 使用setup.py

另外一些Python发布版本包含部分python包的也装有ipython,例如Continuum的ANACONDA以及Enthought的Canopy等.

启动

支持三种启动模式: shell, qtconsole和notebook. notebook需要额外安装,qtconsole需要额外安装qt,pyqt依赖. 如果不需要图形界面或者网络界面, 只是使用命令行, 可以忽略后面的这部分.

Shell模式

就是启动时直接ipython.功能已经很强大了.但是缺点是终端不能出图显示图像结果.已经支持各种补全.

qtconsole模式

基于QT写图形界面,类似于普通IDLE. 快捷键等支持, 支持出图了~
要使用qtconsole,就需要装上jupyter, qt, sip, pyqt几个东西.否则报错说No module或者Qt library找不到.
pip install jupyter
brew install qt
brew install sip
brew install pyqt
运行qtconsole使用命令行命令: ipython qtconsole
qtconsole一共有3种启动方式,详见interactive qtconsole
  • 不加参数。用matplotlib画的图会调用后台的其他图形化程序打开。
  • –pylab。默认同1,但是用display函数能让图在qt界面里画上。
  • –pylab=inline。画的图直接就在qt界面上显示了。
在window当中,可以使用以下vbs脚本来启动ipython qtconsole,并带上配置!双击运行vbs脚本即可~
其实使用快捷方式加入命令参数也行,避免黑色dos的方法: 创建pythonw.exe的快捷方式,修改属性为:起始位置:C:\Python27\Scripts,目标改成C:\Python27\pythonw.exe ipython.exe qtconsole --pylab=inline --ConsoleWidget.font_size=12即可.会有dos闪过,所以还是推荐vbs脚本.
DIM objShell
set objShell=wscript.createObject("wscript.shell")
iReturn=objShell.Run("C:\Python27\Scripts\ipython.exe qtconsole --pylab=inline --ConsoleWidget.font_size=12", 0, TRUE)
修改配置
ipython profile create 命令的输出会告诉你创建的profile的位置。得到的文件夹后缀是DEFAULT,即启动时会载入的默认配置。在这里找到qtconsole相关的配置文件改就行了。
更多细节参看configuration

notebook模式

支持浏览器多tab,每个tab是一个终端.比较潮.还支持远程.
运行notebook使用命令行命令: ipython notebook.
pip install jupyter
pip install "ipython[notebook]"
要是No module named notebook.notebookapp就要pip install jupyter安装一个附加工具jupyter.

使用

  • 可以使用ctrl+enter达到多行代码的输入,再一起执行。
  • 快速帮助: obj?, obj??, ?obj, ??obj.还支持?foo.*abc*这样列出匹配方法/属性.
  • 调用系统指令: !command
    可以直接调用系统指令(指令取决于运行环境,例如msys启动就使用ls), 并且支持 将指令返回值赋值给变量!,如:
a=!ls
a
['hi.txt','hehe.txt']
神奇命令(部分按esc退出)
  • %magic 查看所有的神奇指令
  • %edit 编辑并执行文件。编辑器取决于EDITOR环境变量.
  • %pwd 显示当前目录。
  • %pdoc modulename 显示模组/方法的文件. 等价于 modulename ?
  • %psource modulename%pfile modulename. 显示程序源码.
  • %time statement 计算运行時間。
更多神奇命令以及ipython使用请参考Ipython-quick-ref-sheets (也可以使用%quickref来查看).

scipy官网推荐使用懒人用macports安装办法.需要先安装macports,使用port命令:
sudo port install py27-numpy py27-scipy py27-matplotlib py27-ipython +notebook py27-pandas py27-sympy py27-nose 这样就会一次性自动安装好多好多相关程序.

Reference

  1. iPython
  2. SciPy
  3. Installing Python, virtualenv, NumPy, SciPy, matplotlib and IPython on Lion or Mountain Lion
-----------------------------

Python常用科学计算相关外部库

  1. scipy
    专门解决科学计算中各种标准问题域的包的集合,包括微积分求解,线性矩阵处理,函数优化等.
  2. numpy
    Python科学计算的基础包.
  3. ipython
    增强的python交互控制台,交互数据可视化工具
  4. matplotlib
    2D plotting出图的库,可用于数据处理,服务器处理等.
  5. scikit-learn
    机器学习,数据挖掘与分析的库,依赖于numpy, scipy, matplotlib
  6. Sympy
    数学符号库
  7. Pandas
    数据结构和数据分析库
  8. orange
    带有图形用户界面的机器学习库
  9. statsmodels
    聚焦在统计模型上的强大的库,主要用于预测性和探索性分析。
  10. PyMC
    贝叶斯统计模型和拟合算法的库.
  11. shogun
    支持向量机(Support Vector Machines, SVM)上的机器学习工具箱
  12. Theano
    成熟的深度学习库
  13. Pylearn2
    主要基于theano开发的深度学习库
  14. Decaf
    由UC Berkeley发布的深度学习库
其他如Gensim, PyMVPA, nolearn, OverFeat, hebel, NeuroLab
其他工具:

No comments:

Post a Comment