numpy和scipy终于可以直接用在.net上了
2011-11-04 00:08
176 查看
科学计算语言,底层的当属fortran和C,上层的是matlab用户最多了,居然可以排进世界十大语言。
但是matlab的效率和部署问题,使得很多人只在其上进行算法开发、仿真、调试,之后还要用通用语言重写算法实现。
将matlab是商业软件,python作为一种开放的语言逐渐在科学计算领域流行起来。
numpy和scipy就是基于python开发的两个库。
其实还有很多其他科学计算软件。只是python作为一种通用脚本语言易用,易集成。
所以易用,是像matlab一样随写随运行,所谓易集成,就是可以使用很多其他领域开发的包,而不局限在科学计算领域。
python作为一种脚本语言需要解释器支持,一种是CPython,基于C语言开发的,跨平台性好,一种是Ironpython,基于.net语言开发的,和.net程序结合很好。
同一种语言可以运行在上面两个平台,但是上面两个平台的库互调用就很麻烦了。
比如numpy和scipy就是在CPython上开发的,用在ironpython里需要ironclad做转换。
现在numpy和scipy也做了在Ironpython上可以直接运行的版本,就是本文介绍的。
可以看这个 http://pytools.codeplex.com/wikipage?title=NumPy%20and%20SciPy%20for%20.Net
下面是转载的:
作为Python Tools for Visual Studio项目的一部分,NumPy和SciPy程序库已经迁移到.NET上了。这项迁移通过本地的C核心组合了C#和C接口,从而所有.NET语言都能够从中受益。
IronPython对NumPy和SciPy的端口是
完整的.NET端口,并且包含了针对一般本地C核心的自定义C#/C接口。这意味着不仅IronPython能够使用所有功能,而且所有.NET语言——
像C#和F#——也可以使用,它们只需要访问C#接口对象,
或者有时需要从其它.NET语言解析IronPython表达式。这意味着多维数组对象(ndarray)可以在IronPython和C#或者F#代码
之间平滑地传递。此外,ndarray对象实现了标准的IEnumerable接口,这让数组对象可以由现存的代码经常使用,即便不是特别针对NumPy
的代码也没问题。
NumPy是一种很低级别的API,用于在
大型、多维数组和矩阵上执行数学运算。这个库最初叫做Numeric,是在1995年创建的,那仅仅是Python
1.0发布一年之后。采用当前名称的版本是在2005年创建的,那时这个产品组合了早先的版本和名为numarray的竞争对手的程序库。
SciPy是在其基础之上构建的。据维基百科上所说,“SciPy包含很多模块,能够用于优化、线性代数、整合、插入、特定函数、FFT、符号和图像处理、ODE解析器以及其它科学和工程领域的一般任务。” 人们经常会考虑把它作为MATLAB的替代方案,尽管SciPy经常需要与其它库组合才能够完全替代MATLAB。
NumPy和SciPy的组合为一般的.NET代码提供了很多显而易见的优势。.NET的垃圾回收程序能够比手动的内存管理提供更好的性能,还有就是,通过高度优化的C代码,我们可以获得很好的计算速度。
在此之上还有视图的概念。NumPy不会复制数组,而是让我们可以创建作为其他数组子集存在的数组。改变子集(也就是所说的视图),也会改变原始的数组。这让我们可以在不牺牲性能的情况下获得更整洁的代码。
查看英文原文:NumPy and SciPy for .NET
但是matlab的效率和部署问题,使得很多人只在其上进行算法开发、仿真、调试,之后还要用通用语言重写算法实现。
将matlab是商业软件,python作为一种开放的语言逐渐在科学计算领域流行起来。
numpy和scipy就是基于python开发的两个库。
其实还有很多其他科学计算软件。只是python作为一种通用脚本语言易用,易集成。
所以易用,是像matlab一样随写随运行,所谓易集成,就是可以使用很多其他领域开发的包,而不局限在科学计算领域。
python作为一种脚本语言需要解释器支持,一种是CPython,基于C语言开发的,跨平台性好,一种是Ironpython,基于.net语言开发的,和.net程序结合很好。
同一种语言可以运行在上面两个平台,但是上面两个平台的库互调用就很麻烦了。
比如numpy和scipy就是在CPython上开发的,用在ironpython里需要ironclad做转换。
现在numpy和scipy也做了在Ironpython上可以直接运行的版本,就是本文介绍的。
可以看这个 http://pytools.codeplex.com/wikipage?title=NumPy%20and%20SciPy%20for%20.Net
下面是转载的:
作为Python Tools for Visual Studio项目的一部分,NumPy和SciPy程序库已经迁移到.NET上了。这项迁移通过本地的C核心组合了C#和C接口,从而所有.NET语言都能够从中受益。
IronPython对NumPy和SciPy的端口是
完整的.NET端口,并且包含了针对一般本地C核心的自定义C#/C接口。这意味着不仅IronPython能够使用所有功能,而且所有.NET语言——
像C#和F#——也可以使用,它们只需要访问C#接口对象,
或者有时需要从其它.NET语言解析IronPython表达式。这意味着多维数组对象(ndarray)可以在IronPython和C#或者F#代码
之间平滑地传递。此外,ndarray对象实现了标准的IEnumerable接口,这让数组对象可以由现存的代码经常使用,即便不是特别针对NumPy
的代码也没问题。
NumPy是一种很低级别的API,用于在
大型、多维数组和矩阵上执行数学运算。这个库最初叫做Numeric,是在1995年创建的,那仅仅是Python
1.0发布一年之后。采用当前名称的版本是在2005年创建的,那时这个产品组合了早先的版本和名为numarray的竞争对手的程序库。
SciPy是在其基础之上构建的。据维基百科上所说,“SciPy包含很多模块,能够用于优化、线性代数、整合、插入、特定函数、FFT、符号和图像处理、ODE解析器以及其它科学和工程领域的一般任务。” 人们经常会考虑把它作为MATLAB的替代方案,尽管SciPy经常需要与其它库组合才能够完全替代MATLAB。
NumPy和SciPy的组合为一般的.NET代码提供了很多显而易见的优势。.NET的垃圾回收程序能够比手动的内存管理提供更好的性能,还有就是,通过高度优化的C代码,我们可以获得很好的计算速度。
在此之上还有视图的概念。NumPy不会复制数组,而是让我们可以创建作为其他数组子集存在的数组。改变子集(也就是所说的视图),也会改变原始的数组。这让我们可以在不牺牲性能的情况下获得更整洁的代码。
查看英文原文:NumPy and SciPy for .NET
相关文章推荐
- 发一个分页存储过程,可以直接在.Net中使用
- 这种方法在受到.NET版本和访问注册表权限时,是最佳解决方案,虽然代码看起来很多,不过下面的类直接拿走用就可以了。
- 终于可以是silverLight生成.net项目了
- .net 中调用 webservice 的N中方法(终于可以孔乙己一把了 ^_^)
- .Net的EXE文件可以直接当DLL文件引用
- iw14.0.50来了,终于可以直接在地址栏输入url打开iw功能页面了;可以自由使用EasyUI等js框架了;显示模式对话框也不再七绕八绕惹人烦了;
- 终于找到一个可以直接将html转换为jade的网页了!!
- window 安装anaconda(内置numpy与scipy) 可以作为科学计算使用
- .Net 邮件发送的类,在程序中直接调用就可以了
- 12306购买火车票终于可以用支付宝付款了!希望过年时可以直接在淘宝上购买~
- 终于可以用.NET,可以上技术网站:)
- 在Windows上安装NumPy、Matplotlib、SciPy和IPython
- Python 学习之三:NumPy,SciPy,Matplotlib教程
- 一起谈.NET技术,.NET的资源并不限于.resx文件,你可以采用任意存储形式 [上篇]
- 把阿里旺旺的图标放到你自己的网站上,直接点击按钮就可以让顾客联系到你
- .NET 4.0 环境下无法直接运行 .NET 2.0 程序的问题,当然目前解决了 (转载--来于园中)
- numpy及scipy的使用
- java中的类c继承了b,b继承了a,c可以直接调用a的方法吗?怎么调用。
- windows64 配置numpy,scipy,theano
- 虚拟字符驱动,申请n页内存,使用mmap映射到应用程序空间,用户就可以直接访问不需要任何同步机制