public NDarray <T> array <T>(T[,,] @object, Dtype dtype = null, bool?copy = null, string order = null, bool?subok = null, int?ndmin = null) { var d1_array = @object.Cast <T>().ToArray(); var type = d1_array.GetDtype(); //if (dtype != null && type != dtype) // throw new NotImplementedException("Type of the array is different from specified dtype. Data conversion is not supported (yet)"); var ndarray = this.empty(new Shape(@object.GetLength(0), @object.GetLength(1), @object.GetLength(2)), dtype: dtype ?? type, order: order); // todo: check out the other parameters long ptr = ndarray.PyObject.ctypes.data; switch ((object)d1_array) { case byte[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case short[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case int[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case long[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case float[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case double[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case bool[] a: var bytes = a.Select(x => (byte)(x ? 1 : 0)).ToArray(); Marshal.Copy(bytes, 0, new IntPtr(ptr), a.Length); break; } return(new NDarray <T>(ndarray)); }
public static NDarray <T> array <T>(T[,,] data, Dtype dtype = null, bool?copy = null, string order = null, bool?subok = null, int?ndmin = null) { var d1_array = data.Cast <T>().ToArray(); var type = d1_array.GetDtype(); var ndarray = np.empty(new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)), dtype: dtype ?? type, order: order); // todo: check out the other parameters if (data.Length == 0) { return(new NDarray <T>(ndarray)); } long ptr = ndarray.PyObject.ctypes.data; switch ((object)d1_array) { case char[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case byte[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case short[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case int[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case long[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case float[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case double[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case bool[] a: var bytes = a.Select(x => (byte)(x ? 1 : 0)).ToArray(); Marshal.Copy(bytes, 0, new IntPtr(ptr), a.Length); break; } return(new NDarray <T>(ndarray)); }
public static NDarray <T> array <T>(T[,,] data, Dtype dtype = null, bool?copy = null, string order = null, bool?subok = null, int?ndmin = null) where T : struct { var __self__ = self; var d1_array = data.Cast <T>().ToArray(); var shape = new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)); var ndarray = array <T>(d1_array, dtype, copy, order, subok, ndmin); return(new NDarray <T>(ndarray.reshape(shape))); }
public static NDArray array <T>(T[,,] data) where T : unmanaged { if (data == null) { throw new ArgumentNullException(nameof(data)); } return(new NDArray(ArraySlice.FromArray(data.Cast <T>().ToArray()), new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)))); }
public static NDarray <T> array <T>(T[,,] data, Dtype dtype = null, bool?copy = null, string order = null, bool?subok = null, int?ndmin = null) { var __self__ = self; var d1_array = data.Cast <T>().ToArray(); var type = d1_array.GetDtype(); var ndarray = np.empty(new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)), dtype: type, order: order); if (data.Length == 0) { return(new NDarray <T>(ndarray)); } long ptr = ndarray.PyObject.ctypes.data; switch ((object)d1_array) { case char[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case byte[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case short[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case int[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case long[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case float[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case double[] a: Marshal.Copy(a, 0, new IntPtr(ptr), a.Length); break; case bool[] a: var bytes = a.Select(x => (byte)(x ? 1 : 0)).ToArray(); Marshal.Copy(bytes, 0, new IntPtr(ptr), a.Length); break; } if (dtype != null || subok != null || ndmin != null) { return(new NDarray <T>(np.array(ndarray, dtype: dtype, copy: false, subok: subok, ndmin: ndmin))); } return(new NDarray <T>(ndarray)); }
public MultiDimensionalArray(T[,,] values, params int[] shape) : this(false, false, default(T), new List <T>(values.Cast <T>()), GetShape((IList)values, shape)) { }
static public IEnumerable <T> Where <T>(this T[, , ] array, Func <T, bool> predicate) { return(array.Cast <T>().Where(predicate)); }
public static NDArray array <T>(T[,,] data) { var array = data.Cast <T>().ToArray(); //todo! not use ienumerable. return(new NDArray(array, new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)))); }
public static List <T> To1DList <T>(this T[,,] arr) { List <T> list = arr.Cast <T>().ToList(); return(list); }
public static NDArray array <T>(T[,,] data) { var array = data.Cast <T>().ToArray(); return(new NDArray(array, new Shape(data.GetLength(0), data.GetLength(1), data.GetLength(2)))); }
public IEnumerator <T> GetEnumerator() { return(blocks.Cast <T>().GetEnumerator()); }