在医学图像领域,python可以取代matlab吗

Python013

在医学图像领域,python可以取代matlab吗,第1张

python是一种脚本语言,matlab顾名思义叫“数学实验室”就是专门为数学计算而设计的一种语言。两者应用的领域不同,各自在特殊算法的效率不同,面向的对象不同,因此相互之间并没有太多冲突。因此,python替代matlab是不大可能的。

对比会发现,matlab强调的简易的操作以及全面的数学函数库(包涵了信号处理,图像处理,数值分析等库)其作用是让不善于编程的科研人员可以最短的时间内实现自己的算法。但其运算效率低下,占用资源巨大,完全无法应用于商业软件开发。而python一开始便定位为一种“开发语言”,它本身是具备开发语言的一切特征,小巧,高效(跟JAVA差不多)。但是其基本库不包涵太多数学工具,需要用户一个一个的再次安装。而且它也没有matlab当中很多集计算,显示,实时调整为一体的功能函数。

因此,python是不能取代matlab在某些领域的应用的。

PythonIDE工具是每个Python工程师必须使用的开发工具,选择正确的编辑器对Python编程效率的影响是非常大的,因此选择合适的Python开发工具十分重要,以下是通过长期实践发掘的好用的Python IDE,它们功能丰富,性能先进,能够帮助开发人员快速的进行应用程序开发。

1. Pydev + Eclipse – 最好的免费python IDEPydev的是Python IDE中使用最普遍的,原因很简单,它是免费的,同时还提供很多强大的功能来支持高效的Python编程。Pydev是一个运行在eclipse上的开源插件,它把python带进了eclipse的王国,如果你本来就是是一个eclipse的用户那么Pydev将给你家里一样的感觉。Pydev能高居榜首,得益于这些关键功能,包括Django集成、自动代码补全、多语言支持、集成的Python调试、代码分析、代码模板、智能缩进、括号匹配、错误标记、源代码控制集成、代码折叠、UML编辑和查看和单元测试整合等。虽然Pydev是最好的开源python IDE,但是 它也和另一个名为Liclipse的产品一起打包,Liclipse是一个商业产品,同样也构建在eclipse上,提供了易用性改进和额外的主题选项。除了python,Pydev也支持Jython and IronPython。2. PyCharm – 最好的商业python IDEPyCharm是专业的python集成开发环境,有两个版本。一个是免费的社区版本,另一个是面向企业开发者的更先进的专业版本。大部分的功能在免费版本中都是可用的,包括智能代码补全、直观的项目导航、错误检查和修复、遵循PEP8规范的代码质量检查、智能重构,图形化的调试器和运行器。它还能与IPythonnotebook进行集成,并支持Anaconda及其他的科学计算包,比如matplotlib和NumPy。PyCharm专业版本支持更多高级的功能,比如远程开发功能、数据库支持以及对web开发框架的支持等。

3. VIM

VIM是一个很先进的文本编辑器,在python开发者社区中很受欢迎。它是一个开源软件并遵循GPL协议,所以你可以免费的使用它。

虽然VIM是最好的文本编辑器,但是它提供的功能不亚于此,经过正确的配置后它可以成为一个全功能的Python开发环境。此外VIM还是一个轻量级的、模块化、快速响应的工具,非常适合那些很牛的程序员——编程从不用鼠标的人。

初始化配置需要花一定时间,因为你需要安装些VIM的插件,并配置让他们正常工作,最后你会发现这一切都是值得努力的。如果你在寻找一个linux系统下的python IDE,那么VIM将是你的不二选择。

4. Wing IDE

WingIDE是另外一个商业的、面向专业开发人员的python集成开发环境,可以运行在windows、OS X和Linux系统上,支持最新版本的python,包括stackless Python(python的增强版)。Wing IDE分三个版本:免费的基础版,个人版,以及更强大的专业版。

调试功能是Wing IDE的一大亮点,包括多线程调试,线程代码调试,自动子进程调试,断点,单步代码调试,代码数据检查等功能,此外还提供了在树莓派上进行远程调试的功能。

在代码管理方面,Wing IDE能非常灵活的与Git、subversion、perforce、cvs、Bazaar、Mercurial等工具集成。

此外,Wing IDE也支持其他更多的python框架,比如Maya、MotionBbuilder、Zope、PyQt、PySide、pyGTK、PySide、Django、matplotlib等等。

5. Spyder Python

SpyderPython是一个开源的python集成开发环境,非常适合用来进行科学计算方面的python开发。是一个轻量级的软件,是用python开发的,遵循MIT协议,可免费使用。

Spyderpython的基本功能包括多语言编辑器、交互式控制台、文件查看、variable explorer、文件查找、文件管理等。Spyder IDE也可以运行于windows、Mac 或者 Linux系统之上。

虽然Spyder是一个独立的集成开发环境,能运行在windows、MacOS 、MacOS X、Linux等系统之上。但是它也可以作为PyQT的扩展库,可以嵌入到PyQT的应用中去。

6. Komodo IDE

Komodo是Activestate公司开发的一个跨平台的集成开发环境,支持多种语言包括python。它是商用产品,但是提供了开源的免费版本叫Komodo Edit,能够安装在Mac、Windows 和Linux系统上。

全功能的Komodo对教育机构用户是免费的,老师和教授可以将其应用于实验室及教学中。学生也可以通过较低的费用得到Komodo的授权许可。

1.Python初步

Python是一种面向对象、直译式计算机程序设计语言。公认的特点是简单、易学、免费、开源等等。个人觉得特别喜欢Python的地方是对字符串操作特别的灵活、采取缩进的方式简单明了(虽然百度百科上把这个说成是局限)、以及简单的语法。

Python 和c类似,是顺序进行的,不想visual c++是事件触发不同模块进行的。操作和matlab相似,有编辑窗口,也有一个运行的窗口(交互式解释器),可以编写之后运行,也可以在命令行模式下一条条的完成。

2.基本语法

2.1表达式、数字、/(整除)、%(取余)、**(幂)、#注释;

2.2长整形(后面加L);十六进制和八进制(和c一样0x和0);

2.3变量赋值(x=2)、语句、输入输出(input(“哈哈”)、x=input(””));

2.4 函数:abs()、round()四舍五入

2.5 模块:importmath

3.字符串

3.1 单引号和转义字符

Python中单引号和双引号的作用基本上是一致的,用双引号一般是在所引用的字符串中包含单引号,为了加以区分所以使用双引号。另一个方式就是用/来转义。转义即把后面的一个字符不按照它自身的功能处理而作为普通字符。

3.2 字符串表示

字符串拼接用‘+’,例:x=‘a’ y=’b’ z=x+y

字符串表示:str:把值转换为合理形式的字符串,以便用户理解

repr或‘x’:创建一个字符串,以合法的Python表达式的形式来表示值。

长字符串: 如果字符串太长,可以用三个引号来代替普通的引号。或者在每行末用/转义换行符。

原始字符串:r‘’不会对/做转义处理,会保持字符串内所有字符的原始书写。

3.3 字符串格式

这个和c类似,用格式化操作符(%)来规定诸如长度、精确位、对齐等。

3.4 字符串方法

字符串方法和序列方法类似:对象.方法。常用的有以下几种:

find:在字符串中查找子字符串,返回子字符串所在位置最左端索引,没有则返回-1。

>>>title=’I am achinse’

>>>title.find(‘chi’)

>>>8

注:还可以指定范围:title.find(‘’,0,16),即为从第一个到第16个。

join:在队列中添加元素。

>>>sep=”+”

>>>seq=[‘1’,’2’,’3’,’4’,’5’]

>>>sep.join(seq)

>>>’1+2+3+4+5’

lower:返回字符串的小写版

>>>’I am aChinese’.lower()

>>>I am aChinese

replace:返回某字符串的所有匹配项均被替换之后得到的字符串。

>>>’This is atest’.replace(‘is’,’eez’)

>>>’theez eez atest’

split:join的逆方法,用来将字符串分割成序列

>>>’1+2+3+4’.split(‘+’)

>>>[‘1’,’2’,’3’,’4’]

strip:返回去除两侧(不包括内部)空格的字符串:

>>>’ hh di hh ’.strip()

>>>’hh dihh’

注:还可指定要去除的字符,列为参数即可,注意只去除两侧,中间有也不会去除。

translate:与replace相似,但是只处理单个字符,优势在于可以同时进行多个替换。

3.5 字符串与序列

字符串可以通过list函数转换为序列,序列的操作见下一部分。唯一与标准序列不同的是不可变,不能x[2]=’c’

4.序列

4.1 通用序列操作

索引:如c的下标

分片:[3(起始):6(去除分片后剩余部分的第一位)] [-3:-1] [0:10:2(步长)]

序列相加、相乘:+ *

in:是否在序列中,返回布尔值

长度、最大(小)值:len() max()min()

4.2 列表

4.2.1基本列表操作

元素赋值、分片赋值(很有意思的操作)

4.2.2 列表方法

对象.方法(参数)

append:用于在列表末尾追加新对象

count:统计某个元素在列表中出现的次数

extend:可以在末尾一次性追加另一个序列中的多个值

index:用于从列表中找出某个值第一个匹配项的索引位置

insert:用于将对象插入到列表中

pop:移除列表中的一个元素(默认是最后一个),并返回该元素的值

remove:用于移除列表中某一个值的第一个匹配项

reverse:将列表中的元素反向存放

sort:在原位置进行排序

===============================================================================================

这个假期在学校实验室实习,需要用到python,不过要求不高,需要用python编的程序其实很简单,加上之前有了c语言和delphi的基础,只是大体看了看python的书,这里很想说的是有的时候边学边用,边用边找的学习方式非常有效率!!

python给我最大的感受就是灵活,简单。语法非常贴近自然语言的习惯,而且对于尤其是字符串的处理非常强大,不需要自己再绞尽脑汁像准备ACM那时候那么痛苦,非常喜欢python!!