NumSharp: 高性能N维张量计算库

NumSharp: 高性能N维张量计算库

NumSharpHigh Performance Computation for N-D Tensors in .NET, similar API to NumPy.项目地址:https://gitcode.com/gh_mirrors/nu/NumSharp

一、项目介绍

欢迎来到NumSharp的世界! 这个强大的.NET科学计算库旨在提供类似Python中著名numpy库的功能性, 是一个开放源码项目, 其目标是将著名的Python库numpy引入到.NET世界中. NumSharp不仅是一个简单的移植工作, 它还致力于将整个Scipy栈带到.NET领域. 这意味着您可以在.NET环境中享受高性能的数学运算, 数据分析以及机器学习功能.

作为一个基于C#并针对NET Standard开发的工具包, NumSharp拥有超过15万行代码, 大部分用于处理不同数据类型而不会影响性能. 模板可以通过#if _REGEN块识别, 并由Regen Templating Engine驱动, 这是一个外部工具(在Visual Studio中的扩展), 可以根据需求生成基于类C#语言的模板.

目标受众:

  • 对.NET或机器学习感兴趣的研究者和开发者.
  • 希望在.NET平台上进行科学计算和数据分析的人士.

主要特点:

  • 兼容性: 支持.NET Standard 2.0及更高版本.
  • API一致性: 提供类似于Python numpy的API设计.
  • 高效率: 在多种数据类型上保持高性能, 特别是在多维数组操作方面.

二、项目快速启动

本节将引导您通过简单步骤安装和配置NumSharp. 让我们开始吧!

步骤1: 使用NuGet安装NumSharp

方式1: 使用NuGet包管理器控制台

打开您的Visual Studio, 点击Tools -> NuGet Package Manager -> Package Manager Console. 在控制台窗口输入以下命令:

Install-Package NumSharp -Version 0.30.0
方式2: 使用Paket CLI

如果您正在使用F#, 或者在Polyglot笔记本中运行代码, 可以采用此方式:

paket add NumSharp --version 0.30.0

确保已经在您的项目文件中添加对NumSharp的引用:

<PackageReference Include="NumSharp" Version="0.30.0" />

快速演示代码

下面的示例展示了如何创建一个多维数组(NDArray)并在.NET中执行一些基本的数学运算:

using NumSharp;

// 创建一个多维数组
var arr = NDArray.Random(10, 10);

// 执行矩阵乘法
var result = arr @ arr;

Console.WriteLine("The shape of the array: " + result.shape);

三、应用案例和最佳实践

NumSharp适用于各种场景, 包括教育研究、金融分析、图像处理、深度学习等. 我们整理了一些最佳实践来帮助您更有效地利用NumSharp的能力.

示例案例: 图像识别

假设我们有一系列手写数字图片, 目的是训练一个模型来识别这些数字.

using NumSharp;
using System.IO;

// 加载图像
var image = ImageIO.LoadImage("path/to/image.png");

// 将图像转换为NumSharp的NDArray
var ndarrayImage = NP.array(image.Data).Reshape((image.Width, image.Height));

// 显示图像
var imgDisp = NP.show(ndarrayImage);
Console.WriteLine(imgDisp);

这种技术可以与机器学习算法结合, 利用NumSharp提供的丰富的数学函数和优化过的向量化运算.

最佳实践

  • 利用广播机制: NumSharp支持全维度广播和轴支持, 有助于简化向量化运算.
  • 使用内置函数进行数学运算: NumSharp提供了大量优化过的数学函数, 如np.sin, np.cos, 和np.exp.
  • 整合其他.NET框架: NumSharp可以无缝地与其它.NET生态系统项目集成, 如ML.NET, 以构建复杂的数据管道和模型.

四、典型生态项目

NumSharp作为SciSharp.org的一部分, 已经融入了广泛的.NET科学计算生态系统之中. 下面是一些相关且高度互补的项目, 推荐给您进一步探索:

  • ML.NET: Microsoft推出的开源机器学习框架, 用于训练和部署自定义的机器学习模型.
  • SciSharp.TensorFlow.Redist: 为.NET环境提供了TensorFlow的封装, 使开发者能够在.NET应用程序中使用TensorFlow执行深度学习任务.
  • MathNet.Numerics: 提供了一系列数学方法和统计计算工具, 与NumSharp相辅相成.

总之, NumSharp不仅是一个独立的强大库, 而是连接.NET科学计算社区的关键节点. 结合上述推荐项目和其他资源, 开发者可以获得全面、高效的科学计算解决方案.


现在, 您已经掌握了NumSharp的基本知识及其在.NET科学计算领域的价值. 继续深入, 了解更多的细节和技术内幕, 让我们一起开创数据科学的新篇章!

NumSharpHigh Performance Computation for N-D Tensors in .NET, similar API to NumPy.项目地址:https://gitcode.com/gh_mirrors/nu/NumSharp

NumPy是在python中处理数据的最基本和最强大的包。 如果您打算从事数据分析或机器学习项目,那么对numpy的充分理解几乎是必须的。 其他用于数据分析的软件包(如pandas)是建立在numpy之上,用于构建机器学习应用的scikit-learn软件包也在numpy上运行。 但对于.NET开发人员来说,却没有这样的强大工具。 虽然有像Deedle和Math.NET这样的开源,但它们不是很容易使用,也不能借用很多现有的python代码。 NumSharpNumerical .NET)可以说是C#中的线性代数。 它是用C#编写的,符合.netstandard 2.0标准。 它的目标是让.NET开发人员使用NumPy的语法编写机器学习代码,从而最大限度地借鉴现有大量在python代码的转译成本。 NumSharp使用最新的Span技术安全高效地访问内存,优化每个模拟API的性能,确保最底层的NDArray达到最佳性能状态。NumSharp对于在数组上执行数学和逻辑运算非常有用。 它为.NET中的n阵列和矩阵的操作提供了大量有用的功能。 让我们给出一个代码片段来说明如何使用NumSharp。 // 初始化一个NumSharp实例,类名故意叫NumPy var np = new NumPy(); // 产生一个数字0到9的向量 np.arange(10) // 产生一个3张量 np.arange(12).reshape(2, 3, 2); // 产生10个0到9的随机数,并转换成5*5的矩阵 np.random.randint(low: 0, high: 10, size: new Shape(5, 5)); 上面的代码是不是看起来否非常接近python代码?简直就是如出一辙。NumSharp的目的就是让你可以轻松的复制粘贴Python代码。 如何安装: PM> Install-Package NumSharp   NumSharp 已被如下项目使用: Pandas.NET Bigtree.MachineLearning CherubNLP BotSharp 标签:numpy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

虞宜来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值