我开始使用Numpy,非常喜欢它的数组处理能力。有没有类似的C#库可以提供具有相似功能的数组操作呢?我最想要的特性是:
- 从另一个数组创建一个数组
- 便捷/轻松地迭代n维数组
- 对数组进行切片
NumPY已通过IronPython移植到.NET平台。
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#中的多维数组只是IEnumerable
而不是IEnumerable<T>
造成的。(由于这个怪异的特性)。