1. 求利用python来科学计算网络边的(介数)的编程语句

#encoding=utf-8
importtime

fromoperatorimportitemgetter

#DatainBC.txt:
#a b
#a h
#b c
#b h
#h i
#h g
#g i
#g f
#c f
#c i
#c d
#d f
#d e
#f e

classGraph:
def__init__(self):
self.Graph=defaultdict(set)
self.NodesNum=0

defMakeLink(self,filename,separator):
withopen(filename,'r')asgraphfile:
forlineingraphfile:
nodeA,nodeB=line.strip().split(separator)
self.Graph[nodeA].add(nodeB)
self.Graph[nodeB].add(nodeA)
self.NodesNum=len(self.Graph)

defBetweennessCentrality(self):
betweenness=dict.fromkeys(self.Graph,0.0)
forsinself.Graph:
#1.
S=[]
P={}
forvinself.Graph:
P[v]=[]
Sigma=dict.fromkeys(self.Graph,0.0)
Sigma[s]=1.0
D={}
D[s]=0
Q=[s]
#
whileQ:
v=Q.pop(0)
S.append(v)
Dv=D[v]
forwinself.Graph[v]:
#wfoundforthefirsttime?
ifwnotinD:
Q.append(w)
D[w]=D[v]+1
#shortestpathtowviav
ifD[w]==D[v]+1:
Sigma[w]+=Sigma[v]
P[w].append(v)

#2.sumallpair-dependenciesofnodes
delta=dict.fromkeys(self.Graph,0.0)
#Sreturnsverticesinorderofnon-increasingdistancefroms
whileS:
w=S.pop()
coeff=(1.0+delta[w])/Sigma[w]
forvinP[w]:
delta[v]+=Sigma[v]*coeff
ifw!=s:
betweenness[w]+=delta[w]

scale=1.0/((self.NodesNum-1)*(self.NodesNum-2))
forvinbetweenness:
betweenness[v]*=scale

betweenness=[(node,bc)fornode,bcinbetweenness.iteritems()]
betweenness=sorted(betweenness,key=itemgetter(1),reverse=True)
returnbetweenness

if__name__=='__main__':
separator=' '
file='C:\Users\Administrator\Desktop\BC.txt'

begin=time.time()
myGraph=Graph()
myGraph.MakeLink(file,separator)
printmyGraph.BetweennessCentrality()

print'Time:',time.time()-begin,'seconds'

2. 为什么Python适合科学计算

python做科学计算的特点:
1. 科学库很全。
科学库:numpy,scipy。作图:matplotlib。并行:mpi4py。调试:pdb。
2. 效率高。
如果你能学好numpy(array特性,f2py),那么你代码执行效率不会比fortran,C差太多。但如果你用不好array,那样写出来的程序效率就只能呵呵了。所以入门后,请一定花足够多的时间去了解numpy的array类。
3. 易于调试。
pdb是我见过最好的调试工具,没有之一。直接在程序断点处给你一个截面,这只有文本解释语言才能办到。毫不夸张的说,你用python开发程序只要fortran的1/10时间。
4. 其他。
它丰富而且统一,不像C++的库那么杂(好比linux的各种发行版),python学好numpy就可以做科学计算了。python的第三方库很全,但是不杂。python基于类的语言特性让它比起fortran等更加容易规模化开发。

python和老牌科学计算语言fortran相比,有着众多的优势,如果能用f2py接合两者,那是极好的。

3. 用python做科学计算用哪个发行版比较好

Python(x, y)没有64位的版本,开数组开大了就Memory Error了。 用过Enthought Canopy一段时间,感觉界面看上去比python(x,y)里的Spyder洋气一些

4. python的科学计算有什么用

Python用在科学计算领域有两大好处:

  1. 强大的胶水功能,可以粘合其他的第三方库,处理任何碰到的问题;

  2. 批量处理的功能,省去很多时间,提高工作效率;

补充知识:

  1. Python是一种面向对象的、动态的程序设计语言,具有非常简洁而清晰的语法,既可以用于快速开发程序脚本,也可以用于开发大规模的软件,特别适合于完成各种高层任务;

  2. 随着NumPy、SciPy、matplotlib、ETS等众多程序库的开发,Python越来越适合于做科学计算。与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的通用程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多程序库的支持,适用于Windows和Linux等多种平台,完全免费并且开放源码。虽然MATLAB中的某些高级功能目前还无法替代,但是对于基础性、前瞻性的科研工作和应用系统的开发,完全可以用Python来完成。

5. 怎样搭建基于 Python 的科学计算,数据处理环境

python 的科学计算模块有numpy,scipy,画图的有mathplotlib。

在linux下软件仓库里面应该都有;在windows下有些python IDL 里面会集成的有,可以在网上搜一下。

也有相关的书籍介绍用python做科学计算。

6. python的科学计算和plot功能可能追上或者取代matlab吗

说起科学计算,首先会被提到的可能是MATLAB。然而除了MATLAB的一些专业性很强的工具箱还无法替代之外,MATLAB的大部分常用功能都可以在Python世界中找到相应的扩展库。和MATLAB相比,用Python做科学计算有如下优点:
● 首先,MATLAB是一款商用软件,并且价格不菲。而Python完全免费,众多开源的科学计算库都提供了Python的调用接口。用户可以在任何计算机上免费安装Python及其绝大多数扩展库。
● 其次,与MATLAB相比,Python是一门更易学、更严谨的程序设计语言。它能让用户编写出更易读、易维护的代码。
● 最后,MATLAB主要专注于工程和科学计算。然而即使在计算领域,也经常会遇到文件管理、界面设计、网络通信等各种需求。而Python有着丰富的扩展库,可以轻易完成各种高级任务,开发者可以用Python实现完整应用程序所需的各种功能。

7. 用python做科学计算用哪个发行版比较好

Python(x, y)没有64位的版本,开数组开大了就Memory Error了。

用过Enthought Canopy一段时间,感觉界面看上去比python(x,y)里的Spyder洋气一些,但是有个缺点让我不能忍,就是无法看到程序中各种变量。想用python做科学计算,但是无法得知程序运行期间各种变量的变化情况,就像MATLAB缺少了Workspace一样,怎么忍,而且我查过,这个功能EP确实是还没有,我只好用回Spyder了(Spyder自带variable explorer),其他详细的功能我也没有对比过,感觉都差不多,其他的IDE我也没用过,所以,仅供参考啦。话说EP的各种包清晰明了又可以随时更新,这点比(x,y)强太多,不过,其实不更新也根本没问题吧。

8. 为什么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++重写。

9. 如何快速优雅的使用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的库啦。

    有点曲线救国的味道