Skip to content

NumPy port in C#, translate Python Machine Learning code in One - One function mapping.

License

Notifications You must be signed in to change notification settings

KevinMa0207/NumSharp

 
 

Repository files navigation

NumSharp

NumPy port in C# .NET Standard

Join the chat at https://gitter.im/publiclab/publiclab NumSharp NuGet

Is it difficult to translate python machine learning code into C#? Because too many functions can’t be found in the corresponding code in the .Net SDK. NumSharp is the C# version of NumPy, which is as consistent as possible with the NumPy programming interface, including function names and parameter locations. By introducing the NumSharp tool library, you can easily convert from python code to C# code. Here is a comparison code between NumSharp and NumPy (left is python, right is C#):

comparision

If you want to read some more informations, we start a doc on https://scisharp.github.io/NumSharp/.

NumSharp has implemented the arange, array, max, min, reshape, normalize, unique interfaces. More and more interfaces will be added to the library gradually. If you want to use .NET to get started with machine learning, NumSharp will be your best tool library.

Implemented APIs

The NumPy class is a high-level abstraction of NDArray that allows NumSharp to be used in the same way as Python's NumPy, minimizing API differences caused by programming language features, allowing .NET developers to maximize Utilize a wide range of NumPy code resources to seamlessly translate python code into .NET code.

  • NumPy
    • absolute
    • amax
    • amin
    • arange
    • array
    • hstack
    • linspace
    • max
    • power
    • random
      • normal
      • randint
      • randn
      • stardard_normal
    • reshape
    • sin
    • vstack
    • zeros

How to use

// init NumPy instance which pesists integer data type
var np = new NumPy<int>();
// create a 2-dimension matrix
var nd = np.arange(12).reshape(3, 4);

// access data by index
var data = nd[1, 1];

// create a 3-dimension vector
nd = np.arange(12).reshape(2, 3, 2);
// get the 2nd vector in the 1st dimension
data = n[new Shape(1)];

// get the 3rd vector in the (axis 1, axis 2) dimension
data = n[new Shape(1, 2)];

// interate ndarray
foreach (data in nd)
{
	// data is a ndarray or a value
}

Install NumSharp in NuGet

PM> Install-Package NumSharp

How to make docs

How to run benchmark

C: \> dotnet NumSharp.Benchmark.dll nparange

Reference the documents generated by DocFX.

Reference the documents host on readthedocs.io.

NumSharp is referenced by:

NumSharp is a member project of SciSharp.org which is the .NET based ecosystem of open-source software for mathematics, science, and engineering. Welcome to fork and pull request to add more APIs, and make reference list longer.

About

NumPy port in C#, translate Python Machine Learning code in One - One function mapping.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 98.5%
  • PowerShell 1.2%
  • Python 0.3%