daru v0.0.5 Release Notes

Release Date: 2015-02-28 // about 9 years ago
    • Easy accessors for some methods
    • Faster CSV loading.
    • ๐Ÿ”„ Changed vector #is_valid? to #exists?
    • Revamped dtype specifiers for Vector. Now specify :array/:nmatrix for changing underlying data implementation. Specigfy nm_dtype for specifying the data type of the NMatrix object.
    • #sort for Vector. Quick sort algorithm with preservation of original indexes.
    • Removed #re_index and #to_index from Daru::Index.
    • Ability to change the index of Vector and DataFrame with #reindex/#reindex!.
    • Multi-level #sort! and #sort for DataFrames. Preserves indexing.
    • All vector statistics now work with NMatrix as the underlying data type.
    • Vectors keep a record of all positions with nils with #nil_positions.
    • Know whether a position has nils or not with #is_nil?
    • โž• Added #clone_structure to Vector for cloning only the index and structure or a vector.
    • Figure out the type of data using #type. Running thru the data to determine its type is delayed till the last possible moment.
    • โž• Added arithmetic operations between data frame and scalars or other data frames.
    • โž• Added #map_vectors!.
    • Create a DataFrame from Array of Arrays and Array of Vectors.
    • ๐Ÿ”จ Refactored DataFrame.rows and the DataFrame constructor.
    • โž• Added hierarchial indexing to Vector and DataFrame with MultiIndex.
    • Convert DataFrame to ruby Matrix or NMatrix with #to_matrix and #to_nmatrix.
    • โž• Added #group_by to DataFrame for grouping rows according to elements in a given column. Works similar to SQL GROUP BY, only much simpler.
    • โž• Added new class Daru::Core::GroupBy for supporting various grouping methods like #head, #tail, #get_group, #size, #count, #mean, #std, #min, #max.
    • Tranpose indexed/multi-indexed DataFrame with #transpose.
    • ๐Ÿ’Ž Convert Daru::Vector to horizontal or vertical Ruby Matrix with #to_matrix.
    • Added shortcut to DataFrame to allow access of vectors by using only #[] instead of calling #vector or [vector_names, :vector].
    • โž• Added DSL for Vector and DataFrame plotting with nyaplot. Can now grab the underlying Nyaplot::Plot and Nyaplot::Diagram object for performing different operations. Only need to supply parameters for the initial creation of the diagram.
    • โž• Added #pivot_table to DataFrame for reducing and aggregating data to generate a quick summary.
    • โž• Added #shape to DataFrame for knowing the numbers of rows and columns in a DataFrame.
    • โž• Added statistics methods #mean, #std, #max, #min, #count, #product, #sum to DataFrame.
    • โž• Added #describe to DataFrame for producing multiple statistics data of numerical vectors in one shot.
    • ๐Ÿ’Ž Monkey patched Ruby Matrix to include #elementwise_division.
    • โž• Added #covariance to calculate the covariance between numbers of a DataFrame and #correlation to calculate correlation.
    • Enumerators return Enumerator objects if there is no block.