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); }
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); }
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); }