16

我开始使用 Numpy 并且非常喜欢它的数组处理能力。是否有一些我可以在 C# 中使用的库,它提供与数组类似的功能。我最想要的功能是:

  • 从另一个数组创建一个数组
  • n维数组的简单/繁琐迭代
  • 数组切片
4

2 回答 2

8

NumPY 已通过 IronPython 移植到 .NET。在此处查找主页。

于 2013-04-12T17:00:13.507 回答
1

我认为你不需要图书馆。我认为 LINQ 可以很好地完成您提到的所有内容。

从另一个数组创建一个数组

int[,] parts = new int[2,3];

int[] flatArray = parts.ToArray();
// Copying the array with the same dimensions can easily be put into an extension 
// method if you need it, nothing to grab a library for ...

轻松迭代

int[,] parts = new int[2,3];

foreach(var item in parts)
    Console.WriteLine(item);

数组切片

int[] arr = new int[] { 2,3,4,5,6 };
int[] slice = arr.Skip(2).Take(2).ToArray();

// Multidimensional slice 
int[,] parts = new int[2,3];
int[] slice = arr.Cast<int>().Skip(2).Take(2).ToArray();

最后一个示例中的尴尬.Cast<int>由于 C# 中的多维数组 is onlyIEnumerable和 notIEnumerable<T>的怪癖。

于 2013-04-12T16:59:24.250 回答