SciSharp / NumSharp

High Performance Computation for N-D Tensors in .NET, similar API to NumPy.
https://github.com/SciSharp
Apache License 2.0
1.38k stars 192 forks source link

Which APIs and Modules could be implemented? #2

Closed dotChris90 closed 6 years ago

dotChris90 commented 6 years ago

Hallo,

first of all : awesome work! :D I just was thinking APIs could be used for numpy (so which classes and methods)? And I was asking what modules should be also implemented?

Is there a way to generate a List with APIs on every module? So could check which APIs exist in python and which should be implemented.

Moreover I think this libs could be used very well in F# and Powershell. At end : great work for starting ;)

Oceania2018 commented 6 years ago

@dotChris90 You're really saying a big picture. I don't even think of that. I just make a tool to serve my another project of machine library currently. Every API implemented satisfy the Machine Learning library first. You might help NumSharp to adopt more APIs. I'm doing the Neural Network implementation in C#, so I need to reference some Python implementation. Thanks for starring this project.

dotChris90 commented 6 years ago

@Oceania2018 @fdncred by the way. the side https://xtensor.readthedocs.io/en/latest/numpy.html also delivers a good overview / List about important APIs we should focus.

Oceania2018 commented 6 years ago

@dotChris90 It's time to start with our pandas repo. pandas is built on top of NumPy and is intended to integrate well within a scientific computing environment with many other 3rd party libraries. I'll create a repo, what name do you like? Pandas.NET? or PandasSharp? anything else?

dotChris90 commented 6 years ago

Wow great idea. But the name I am not sure which fits well.

Pandas.NET I find sounds better. Unfortunately we can not do a word game here like numpy and NumSharp.

Candas. For C# analystics and data frames does not sound sooo fantastic.

So I guess pandas.net is best at moment. :)

dotChris90 commented 6 years ago

An other question.

When implementing pandas we will face troubles with methods parameter. Most method will accept numpy arrays and normal lists. Since we are not duck type but strong data types we should accept interfaces.

So final question. Shall we NDArray implement IList, IEnumerable?

Oceania2018 commented 6 years ago

@fdncred Any idea about the new repo for python pandas?

Oceania2018 commented 6 years ago

@dotChris90 We can overload API in different data type as much as possible.

fdncred commented 6 years ago

@Oceania2018 I haven't used pandas. I'll have to see what it does.

@dotChris90 See below of an example of listing all apis in a module, numpy in this example. Link where I found this.

I'm not sure if this is what you're looking for. Of course, the script could be tweaked to show what you want. numpy.txt

dotChris90 commented 6 years ago

@fdncred thanks. Yeah before was looking for this. But now more thinking we should develop according issues or use cases. Most importantly.

But thanks for sharing :)

dotChris90 commented 6 years ago

I will close this because I guess it is better to be issue driven. ;)