写点什么

为.NET 所用的 NumPy 和 SciPy

  • 2011-08-07
  • 本文字数:794 字

    阅读完需:约 3 分钟

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

2011-08-07 08:112703
用户头像

发布了 340 篇内容, 共 122.4 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

对比一下,你的简历是不是也写成了这样,能拿高薪才怪了

小Q

Java 学习 架构 面试 简历

架构训练营-week8-数据结构与算法,网络,IO

于成龙

极客大学架构师训练营 架构训练营

LeetCode题解:剑指 Offer 22. 链表中倒数第k个节点,使用栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

技术干货:Apache Pulsar 在移动云上的应用

Apache Pulsar

大数据 开源 云原生 Apache Pulsar

面试蚂蚁金服,首战被MySQL惨虐,熬夜啃透这份阿里面经复盘一个月再战拿下P7offer

比伯

Java 程序员 架构 面试 阿里

重拳出击!平台经济反垄断,互联网巨头市值蒸发千亿

CECBC

小额贷款 反垄断

第七周作业

Geek_4c1353

极客大学架构师训练营

11.11 程序员的 1111 种死法

京东科技开发者

程序员 程序人生

双“11”搞促销?本文教你用贪心算法来盘他!

Java架构师迁哥

「架构师训练营」第 4 周作业

小黄鱼

极客大学架构师训练营

要求自愿降薪,员工内心普遍满意:“服从”是如何发生的?

脑极体

Pulsar Summit Asia 2020 | 场景案例论坛(下):多行业,多场景

Apache Pulsar

大数据 开源 Apache Pulsar

【Mycat】Mycat核心开发者带你看尽Mycat三大核心配置文件!!

冰河

分布式数据库 中间件 mycat

Java批量导入去除重复数据并返回结果,我差点就被放倒了

小Q

Java 学习 程序员 架构

科技助力餐饮,普渡送餐机器人在餐博会上被众人围观!

DT极客

《我想进大厂》之Java基础夺命连环16问

艾小仙

Java 面试 编程语言

阿里首发MySQL“完美日记”,基础+优化+事务+集群+锁+主从复制+安全备份

Java架构追梦

Java MySQL 数据库 架构 面试

搞微服务用阿里开源的 Nacos 真香啊!

阿里巴巴 开源 编程

腾讯WeMap,一颗“孢子”的数智化之旅

脑极体

阿里突遭断网断电!双11最惊险一幕刚刚曝光

Java架构师迁哥

年末十家手机银行数字化升级大盘点:谁家开发更全面?谁家建设更到位?

CECBC

疫情 银行 手机银行

浅谈程序员的“内卷化”

数据社

iptables 端口转发

田振宇

面试官问我redis数据类型,我回答了8种

数据库 学习 面试

MySQL 的 join 功能弱爆了?

程序员历小冰

MySQL postgres 多表join

腾讯云直播全解析,双11怎么买才不亏?

腾讯云音视频

腾讯云 阿里云 云直播 直播 视频

当Nginx遇上Tomcat集群,又是一场负载均衡的爱恨情仇

小Q

nginx tomcat 学习 架构 面试

践行新基建,共建城市智能体,为数字经济发展提供新动能

CECBC

云计算 大数据

当Tomcat遇上Netty,我这一系列神操作,同事看了拍手叫绝

小Q

Java 学习 程序员 架构 面试

SpringBoot启动原理

编程门槛 框架设计 spring Boot Starter】

【概念篇】你真正了解越来越火的“数据驱动” 吗?

Java架构师迁哥

为.NET所用的NumPy和SciPy_.NET_Jonathan Allen_InfoQ精选文章