.NET的NumPy和SciPy
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:editor 阅读 631
作者JonathanAllen译者侯伯薇作为PythonToolsforVisualStudio项目的一部分,NumPy和SciPy程序库已经迁移到.NET上了。这项迁移通过本地的C核心组合了C#和

  作者 Jonathan Allen 译者 侯伯薇

  作为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

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2