python科学计算包
㈠ 如何快速优雅的使用python的科学计算库
Python是一种强大的编程语言,其提供了很多用于科学计算的模块,常见的包括numpy、scipy、pandas和matplotlib。要利用Python进行科学计算,就需要一一安装所需的模块,而这些模块可能又依赖于其它的软件包或库,因而安装和使用起来相对麻烦。幸好有人专门在做这一类事情,将科学计算所需要的模块都编译好,然后打包以发行版的形式供用户使用,Anaconda就是其中一个常用的科学计算发行版。
我们从网站(链接1)下载的默认的Anaconda版本已经内置了很多库(链接2),包括numpy等。
尽管Anaconda已经自带了大量科学计算中的常用模块,可以直接使用。有时需要安装一些其他python模块。比如:
conda
anaconda自带了conda命令用于安装与更新模块,比如:
1 conda install scipy2 conda update scipy
安装完我们需要的库之后,如果我们采用随Anaconda一起安装的spyder作为开发环境,那么本文就结束了o_o
事实上是,我一直在用pycharm作为python开发的IDE。写本文之前的5个小时内我一直在尝试各种不同方法让我电脑里的pycharm可以成功安装好numpy库,浏览完各大中外网站介绍的方法后让我意识到这是一个很烦的问题。采用包括但不限于pip命令、安装相应的各种版本whl文件都因为各种各样的原因失效。极其失望的我尝试了安装了Anaconda,在这个界面(链接3)我发现了
“How to set up an IDE to use Anaconda”
它里面介绍了几种软件使用Anaconda的方法,包括Pycharm。
Spyder
Python Tools for Visual Studio (PTVS)
PyCharm
Eclipse & PyDev
Wing IDE
Ninja IDE
因此,配置完pycharm调用Anaconda后,我们在可以快乐的在pycharm里面调用各种科学计算库啦。
具体步骤如下:
1.安装Anaconda
2.安装Pycharm
3.在Pycharm的Files>>settings>>Project Interpreter>>Add local 里面添加Anaconda python.exe. 应用之后就可以调用各种Anaconda的库啦。
有点曲线救国的味道
㈡ python数据分析的包 哪些
IPython
IPython 是一个在多种编程语言之间进行交互计算的命令行 shell,最开始是用 python 开发的,提供增强的内省,富媒体,扩展的 shell
语法,tab 补全,丰富的历史等功能。IPython 提供了如下特性:
更强的交互 shell(基于 Qt 的终端)
一个基于浏览器的记事本,支持代码,纯文本,数学公式,内置图表和其他富媒体
支持交互数据可视化和图形界面工具
灵活,可嵌入解释器加载到任意一个自有工程里
简单易用,用于并行计算的高性能工具
由数据分析总监,Galvanize 专家 Nir Kaldero 提供。
GraphLab Greate 是一个 Python 库,由 C++ 引擎支持,可以快速构建大型高性能数据产品。
这有一些关于 GraphLab Greate 的特点:
可以在您的计算机上以交互的速度分析以 T 为计量单位的数据量。
在单一平台上可以分析表格数据、曲线、文字、图像。
最新的机器学习算法包括深度学习,进化树和 factorization machines 理论。
可以用 Hadoop Yarn 或者 EC2 聚类在你的笔记本或者分布系统上运行同样的代码。
借助于灵活的 API 函数专注于任务或者机器学习。
在云上用预测服务便捷地配置数据产品。
为探索和产品监测创建可视化的数据。
由 Galvanize 数据科学家 Benjamin Skrainka 提供。
Pandas
pandas 是一个开源的软件,它具有 BSD 的开源许可,为 Python
编程语言提供高性能,易用数据结构和数据分析工具。在数据改动和数据预处理方面,Python 早已名声显赫,但是在数据分析与建模方面,Python
是个短板。Pands 软件就填补了这个空白,能让你用 Python 方便地进行你所有数据的处理,而不用转而选择更主流的专业语言,例如 R 语言。
整合了劲爆的 IPyton 工具包和其他的库,它在 Python 中进行数据分析的开发环境在处理性能,速度,和兼容方面都性能卓越。Pands
不会执行重要的建模函数超出线性回归和面板回归;对于这些,参考 statsmodel 统计建模工具和 scikit-learn 库。为了把 Python
打造成顶级的统计建模分析环境,我们需要进一步努力,但是我们已经奋斗在这条路上了。
由 Galvanize 专家,数据科学家 Nir Kaldero 提供。
PuLP
线性编程是一种优化,其中一个对象函数被最大程度地限制了。PuLP 是一个用 Python
编写的线性编程模型。它能产生线性文件,能调用高度优化的求解器,GLPK,COIN CLP/CBC,CPLEX,和GUROBI,来求解这些线性问题。
由 Galvanize 数据科学家 Isaac Laughlin 提供
Matplotlib
matplotlib 是基于 Python 的
2D(数据)绘图库,它产生(输出)出版级质量的图表,用于各种打印纸质的原件格式和跨平台的交互式环境。matplotlib 既可以用在 python 脚本,
python 和 ipython 的 shell 界面 (ala MATLAB? 或 Mathematica?),web 应用服务器,和6类 GUI
工具箱。
matplotlib 尝试使容易事情变得更容易,使困难事情变为可能。你只需要少量几行代码,就可以生成图表,直方图,能量光谱(power
spectra),柱状图,errorcharts,散点图(scatterplots)等,。
为简化数据绘图,pyplot 提供一个类 MATLAB 的接口界面,尤其是它与 IPython
共同使用时。对于高级用户,你可以完全定制包括线型,字体属性,坐标属性等,借助面向对象接口界面,或项 MATLAB 用户提供类似(MATLAB)的界面。
Galvanize 公司的首席科学官 Mike Tamir 供稿。
Scikit-Learn
Scikit-Learn 是一个简单有效地数据挖掘和数据分析工具(库)。关于最值得一提的是,它人人可用,重复用于多种语境。它基于
NumPy,SciPy 和 mathplotlib 等构建。Scikit 采用开源的 BSD 授权协议,同时也可用于商业。Scikit-Learn
具备如下特性:
分类(Classification) – 识别鉴定一个对象属于哪一类别
回归(Regression) – 预测对象关联的连续值属性
聚类(Clustering) – 类似对象自动分组集合
降维(Dimensionality Rection) – 减少需要考虑的随机变量数量
模型选择(Model Selection) –比较、验证和选择参数和模型
预处理(Preprocessing) – 特征提取和规范化
Galvanize 公司数据科学讲师,Isaac Laughlin提供
Spark
Spark 由一个驱动程序构成,它运行用户的 main 函数并在聚类上执行多个并行操作。Spark
最吸引人的地方在于它提供的弹性分布数据集(RDD),那是一个按照聚类的节点进行分区的元素的集合,它可以在并行计算中使用。RDDs 可以从一个 Hadoop
文件系统中的文件(或者其他的 Hadoop 支持的文件系统的文件)来创建,或者是驱动程序中其他的已经存在的标量数据集合,把它进行变换。用户也许想要 Spark
在内存中永久保存 RDD,来通过并行操作有效地对 RDD 进行复用。最终,RDDs 无法从节点中自动复原。
Spark 中第二个吸引人的地方在并行操作中变量的共享。默认情况下,当 Spark
在并行情况下运行一个函数作为一组不同节点上的任务时,它把每一个函数中用到的变量拷贝一份送到每一任务。有时,一个变量需要被许多任务和驱动程序共享。Spark
支持两种方式的共享变量:广播变量,它可以用来在所有的节点上缓存数据。另一种方式是累加器,这是一种只能用作执行加法的变量,例如在计数器中和加法运算中。
㈢ python安装科学计算包出问题,请大侠指点
ImportError: No mole named six
Pylab包内部需要使用six包,需要另外安装
命令提示符下输入
pip install six
㈣ numpy或python的其它科学计算包中能不能指定任意精度
numpy或python的其它科学计算包中能不能指定任意精度
这是第一个题,大概做了2个小时吧,各种纠结啊,后面两个正在做。中间遇到的问题总结:
函式的利用,os.path.walk,python字符集,getopt模块的使用学习,os.path.exists()的利用,列表的对应关系等等
习题2 :关键词-----》序列号问题:
[html]
#!/usr/bin/python
#coding=utf-8
import sys
def collect(file):
result={}
for line in file.readlines():
left,right=line.split()
if result.has_key(right):
result[right].append(left)
else:
result[right]=[left]
return result
if __name__=="__main__":
print sys.argv
if len(sys.argv)==1:
print 'usage:\tpython value_keys.py test.txt'
㈤ 什么是Python科学计算
本书介绍如何用Python开发科学计算的应用程序,除了介绍数值计算之外,还着重介绍如何制作交互式的2D、3D图像,如何设计精巧的程序界面,如何与C语言编写的高速计算程序结合,如何编写声音、图像处理算法等内容。书中涉及的Python扩展库包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。书中以大量实例引导读者逐步深入学习,每个实例程序都有详尽的解释,并都能在本书推荐的运行环境中正常运行。此外,本书附有大量的图表和插图,力求减少长篇的理论介绍和公式推导,以便读者通过实例和数据学习并掌握理论知识。
㈥ 有没有可以并行计算的python科学计算库
因为我的程序中需要并行的是优化计算的evaluation部分,所以如果能够找到一些支持并行优专化的库就可以。
从python官网上,可以找属到一个DEAP库(git上有),利用map进行并行计算。
这个库的优点是,documents和例子是非常详细的。很多函数,用户可以根据自己的需求修改,接口还是很好用的。
DEAP中是通过调用了一个scoop库(git上有)中的map函数来进行并行计算的。
如果你的项目不是优化,可以直接用scoop来做并行计算,scoop的documents也是蛮详细的。
㈦ 如何安装Python数据科学计算库
数据科学计算库
Python中的数据科学计算库有Numpy、Scipy、pandas、matplotlib(前面我分享了一篇matplotlib的简单应用,历史文章里面就有)。
Numpy是一个基础性的Python库,为我们提供了常用的数值数组和函数。
Scipy是Python的科学计算库,对Numpy的功能进行了扩充,同时也有部分功能是重合的。Numpy和Scipy曾经共享过基础代码。
pandas是一个流行的开源Python项目,它的名称取panel data(面板数据,一个计量经济学的术语)和Python data analysis(Python数据分析)的意思。
matplotlib是一个基于Numpy的绘图库。
库的安装
安装这些库之前要先安装Python,默认已全部安装,(Windows直接下载安装,Linux自带2.7版本,可以自行安装3.6版本)。
为了节约时间在更重要的知识上,这里只介绍最简单的安装方式,即包管理工具安装Python库。
不管是Windows和Linux下,都可以在命令行下直接使用下面的命令来安装相关的库,前提是已经安装了pip包(pip包管理工具的相关安装可以看原文这里有链接):
pip install numpy scipy pandas matplotlib或(easy_install是Python自带的)easy_install numpy scipy pandas matplotlib#Linux下安装pip包sudo apt-get install python-pip
说明:Linux下如果涉及权限问题则需要开头添加sudo。安装示例如下所示:
Numpy数组简单示例
我们已经安装好了numpy,然后就可以来个简单的小测试了。与传统的Python列表相比,进行数值运算时,numpy数组的效率要高的多。
完成相同的运算时,numpy代码和Python传统代码相比用到的显式循环语句明显要少,因为numpy是基于向量化的运算。
假设要对向量a和b进行求和,这里的向量指的是一个“一维数组”,a存放的是整数0到n-1的2次幂,如果n等于3,则a存的是0、1、4,向量b存的是整数0到n的3次幂,下面来看一下普通Python代码和numpy来计算的差别:
先看代码:
#filename:vectorsSum.pyimport sysfrom datetime import datetimeimport numpy as np#numpy方法def numpySum(n):a = np.arange(n, dtype = 'int64')**2#3次幂太大会溢出,注意(后面细说)b = np.arange(n, dtype = 'int64')**3c = a + breturn c#普通方法def pythonSum(n):#range() 返回的是“range object”,而不是实际的list 值,所以这里要加上lista = list(range(n))b = list(range(n))c = []for i in range(len(a)):a[i] = i ** 2b[i] = i ** 3c.append(a[i] + b[i])return csize = int(sys.argv[1])start = datetime.now()c = pythonSum(size)delta = datetime.now() - startprint ("最后两个元素的和:", c[-2:])print ("pythonSum花费的时间(微秒)", delta.microseconds)start = datetime.now()c = numpySum(size)delta = datetime.now() - startprint ("最后两个元素的和:", c[-2:])print ("numpySum花费的时间(微秒)", delta.microseconds)#下面测试一下对与1000个,2000个,3000个向量元素,运行结果如下图所示。
看一下运行结果:
上面的结果看到,numpy的计算效率比普通的方法要快不少,所以开始学习吧。
㈧ 为什么Python适合科学计算
原因大约有以下几点:
1. Python的语法简单,这对很少接触编程的搞学术老师的福音。
2. Python相较于其他语言有更丰富的模块,比如科学计算的numpy。
3. Python越来越流行。
Python(英语发音:/ˈpaɪθən/), 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。
Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
㈨ 求Python科学计算第二版的PDF文件
我这整理了一些Python入门学习的电子书想要的可以sixin
㈩ 如何给python加载科学计算库
1.安装
安装Python2.7:hownloads/release/python-2712/根据电脑配置选择合适版本下载安装。
安装过python之后,Python27Scripts有pip.exe,在Python27Scripts文件夹下运行cmd(点击Shift+右键),可以用pip安装其他包。
1. 安装科学计算库
pip installjupyter
pip installpandas
pip installnumpy
pip installmatplotlib
pip installseaborn
pip installscikit-learn
2. 用上述方式安装scipy不成功,可以这样:在ci.e/~gohlke/pythonlibs/下载合适的whl包,pip install <拖入下载到的scipy包>。安装后import scipy若提示缺少numpy+MKL,可以pip uninstall numpy,再下载numpy+MKL的whl包,pip install *.whl。
检测安装是否成功,打开Python的shell,输入:
import matplotlib
import numpy
import scipy等,若不报错,就安装成功。
比如生成一个y=x的直线:
import matplotlib.pyplot as plt
plt.plot([1,2,3])
plt.ylabel('some numbers')
plt.show()1234
上述是我采用的安装方式,过程比较顺利,除了pip,还有其他的方式哈:
1. 用easy_install安装,但是这种方法卸载不方便,不推荐。
2. 用anaconda的conda命令,好像也很常用,因为conda会安装或者更新一些依赖库,但是pip未必。有兴趣的可以试试。
2. 科学计算库的使用
综合:
1.遇到Numpy陌生函数,查询用法
2.pandas教程及API
pandas读取csv文件,提供了大量能使我们快速便捷地处理数据的函数和方法。
3.Matplotlib Tutorial(译)
是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。
数据可视化:
1.Seaborn tutorial
Seaborn模块自带许多定制的主题和高级的接口,来控制matplotlib图表的外观。
机器算法:
1.scikit-learn
scikit-learn的基本功能主要被分为六个部分,分类,回归,聚类,数据降维,模型选择,数据预处理,机器学习模型非常丰富,包括SVM,决策树,GBDT,KNN等等,可以根据问题的类型选择合适的模型,具体可以参考官方网站上的文档。