Esempio n. 1
0
        public static DataFrame Create <T>(T[][] jagged)
        {
            var df = new DataFrame();

            int rowCount = jagged.Length;

            int columnCount = 0;

            foreach (var j in jagged)
            {
                if (columnCount < j.Length)
                {
                    columnCount = j.Length;
                }
            }

            var data = new DataFrameColumn <T> [columnCount];

            for (var column = 0; column < columnCount; ++column)
            {
                data[column] = new DataFrameColumn <T>(df, rowCount, 0);
            }

            for (var row = 0; row < rowCount; ++row)
            {
                for (var column = 0; column < jagged[row].Length; ++column)
                {
                    data[column].Add(jagged[row][column]);
                }

                for (var column = jagged[row].Length; column < columnCount; ++column)
                {
                    data[column].Add(default(T));
                }
            }

            for (var column = 0; column < columnCount; ++column)
            {
                df.DefineNewColumn("c" + column, data[column]);
            }

            return(df);
        }
Esempio n. 2
0
        public static DataFrame Create <T>(T[,] matrix)
        {
            var df = new DataFrame();

            int rowCount    = matrix.GetLength(0);
            int columnCount = matrix.GetLength(1);

            for (var column = 0; column < columnCount; ++column)
            {
                var v = new DataFrameColumn <T>(df, rowCount, 0);
                for (var row = 0; row < rowCount; ++row)
                {
                    v.Add(matrix[row, column]);
                }
                df.DefineNewColumn("c" + column, v);
            }

            return(df);
        }
Esempio n. 3
0
        public static DataFrame Create <T>(T[] array, int rowCount = int.MaxValue, int columnCount = int.MaxValue, bool transpose = false)
        {
            var df = new DataFrame();

            if (columnCount == int.MaxValue)
            {
                if (rowCount == int.MaxValue)
                {
                    columnCount = 1;
                    rowCount    = array.Length;
                }
                else
                {
                    columnCount = array.Length / rowCount;
                    if (columnCount == 0 || array.Length % rowCount != 0)
                    {
                        ++columnCount;
                    }
                }
            }
            else
            {
                if (rowCount == int.MaxValue)
                {
                    rowCount = array.Length / columnCount;
                    if (rowCount == 0 || array.Length % columnCount != 0)
                    {
                        ++rowCount;
                    }
                }
            }

            var data = new DataFrameColumn <T> [columnCount];

            for (int column = 0; column < columnCount; ++column)
            {
                data[column] = new DataFrameColumn <T>(df, rowCount, 0);
            }

            for (int column = 0; column < columnCount; ++column)
            {
                var v = data[column];
                for (int row = 0; row < rowCount; ++row)
                {
                    int index;
                    if (transpose)
                    {
                        index = (row * columnCount + column) % array.Length;
                    }
                    else
                    {
                        index = (column * rowCount + row) % array.Length;
                    }
                    v.Add(array[index]);
                }
            }

            for (var column = 0; column < columnCount; ++column)
            {
                df.DefineNewColumn("c" + column, data[column]);
            }

            return(df);
        }