Package org.apache.spark.mllib.linalg
Class SparseMatrix
Object
org.apache.spark.mllib.linalg.SparseMatrix
- All Implemented Interfaces:
Serializable,Matrix,scala.Serializable
Column-major sparse matrix.
The entry values are stored in Compressed Sparse Column (CSC) format.
For example, the following matrix
1.0 0.0 4.0
0.0 3.0 5.0
2.0 0.0 6.0
is stored as values: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],
rowIndices=[0, 2, 1, 0, 1, 2], colPointers=[0, 2, 3, 6].
param: numRows number of rows
param: numCols number of columns
param: colPtrs the index corresponding to the start of a new column (if not transposed)
param: rowIndices the row index of the entry (if not transposed). They must be in strictly
increasing order for each column
param: values nonzero matrix entries in column major (if not transposed)
param: isTransposed whether the matrix is transposed. If true, the matrix can be considered
Compressed Sparse Row (CSR) format, where colPtrs behaves as rowPtrs,
and rowIndices behave as colIndices, and values are stored in row major.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values) Column-major sparse matrix.SparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values, boolean isTransposed) -
Method Summary
Modifier and TypeMethodDescriptiondoubleapply(int i, int j) Gets the (i, j)-th element.asML()Convert this matrix to the new mllib-local representation.scala.collection.Iterator<Vector>colIter()Returns an iterator of column vectors.int[]colPtrs()copy()Get a deep copy of the matrix.booleanstatic SparseMatrixfromCOO(int numRows, int numCols, scala.collection.Iterable<scala.Tuple3<Object, Object, Object>> entries) Generate aSparseMatrixfrom Coordinate List (COO) format.static SparseMatrixConvert new linalg type to spark.mllib type.inthashCode()booleanFlag that keeps track whether the matrix is transposed or not.intFind the number of values stored explicitly.intnumCols()Number of columns.intFind the number of non-zero active values.intnumRows()Number of rows.int[]static SparseMatrixGenerate a diagonal matrix inSparseMatrixformat from the supplied values.static SparseMatrixspeye(int n) Generate an Identity Matrix inSparseMatrixformat.static SparseMatrixGenerate aSparseMatrixconsisting ofi.i.d. uniform random numbers.static SparseMatrixGenerate aSparseMatrixconsisting ofi.i.d. gaussian random numbers.toDense()Generate aDenseMatrixfrom the givenSparseMatrix.Transpose the Matrix.double[]values()
-
Constructor Details
-
SparseMatrix
public SparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values, boolean isTransposed) -
SparseMatrix
public SparseMatrix(int numRows, int numCols, int[] colPtrs, int[] rowIndices, double[] values) Column-major sparse matrix. The entry values are stored in Compressed Sparse Column (CSC) format. For example, the following matrix
is stored as1.0 0.0 4.0 0.0 3.0 5.0 2.0 0.0 6.0values: [1.0, 2.0, 3.0, 4.0, 5.0, 6.0],rowIndices=[0, 2, 1, 0, 1, 2],colPointers=[0, 2, 3, 6].- Parameters:
numRows- number of rowsnumCols- number of columnscolPtrs- the index corresponding to the start of a new columnrowIndices- the row index of the entry. They must be in strictly increasing order for each columnvalues- non-zero matrix entries in column major
-
-
Method Details
-
fromCOO
public static SparseMatrix fromCOO(int numRows, int numCols, scala.collection.Iterable<scala.Tuple3<Object, Object, Object>> entries) Generate aSparseMatrixfrom Coordinate List (COO) format. Input must be an array of (i, j, value) tuples. Entries that have duplicate values of i and j are added together. Tuples where value is equal to zero will be omitted.- Parameters:
numRows- number of rows of the matrixnumCols- number of columns of the matrixentries- Array of (i, j, value) tuples- Returns:
- The corresponding
SparseMatrix
-
speye
Generate an Identity Matrix inSparseMatrixformat.- Parameters:
n- number of rows and columns of the matrix- Returns:
SparseMatrixwith sizenxnand values of ones on the diagonal
-
sprand
Generate aSparseMatrixconsisting ofi.i.d. uniform random numbers. The number of non-zero elements equal the ceiling ofnumRowsxnumColsxdensity- Parameters:
numRows- number of rows of the matrixnumCols- number of columns of the matrixdensity- the desired density for the matrixrng- a random number generator- Returns:
SparseMatrixwith sizenumRowsxnumColsand values in U(0, 1)
-
sprandn
Generate aSparseMatrixconsisting ofi.i.d. gaussian random numbers.- Parameters:
numRows- number of rows of the matrixnumCols- number of columns of the matrixdensity- the desired density for the matrixrng- a random number generator- Returns:
SparseMatrixwith sizenumRowsxnumColsand values in N(0, 1)
-
spdiag
Generate a diagonal matrix inSparseMatrixformat from the supplied values.- Parameters:
vector- aVectorthat will form the values on the diagonal of the matrix- Returns:
- Square
SparseMatrixwith sizevalues.lengthxvalues.lengthand non-zerovalueson the diagonal
-
fromML
Convert new linalg type to spark.mllib type. Light copy; only copies references- Parameters:
m- (undocumented)- Returns:
- (undocumented)
-
numRows
public int numRows()Description copied from interface:MatrixNumber of rows. -
numCols
public int numCols()Description copied from interface:MatrixNumber of columns. -
colPtrs
public int[] colPtrs() -
rowIndices
public int[] rowIndices() -
values
public double[] values() -
isTransposed
public boolean isTransposed()Description copied from interface:MatrixFlag that keeps track whether the matrix is transposed or not. False by default.- Specified by:
isTransposedin interfaceMatrix
-
equals
-
hashCode
public int hashCode() -
apply
public double apply(int i, int j) Description copied from interface:MatrixGets the (i, j)-th element. -
copy
Description copied from interface:MatrixGet a deep copy of the matrix. -
transpose
Description copied from interface:MatrixTranspose the Matrix. Returns a newMatrixinstance sharing the same underlying data. -
toDense
Generate aDenseMatrixfrom the givenSparseMatrix. The new matrix will have isTransposed set to false.- Returns:
- (undocumented)
-
numNonzeros
public int numNonzeros()Description copied from interface:MatrixFind the number of non-zero active values.- Specified by:
numNonzerosin interfaceMatrix- Returns:
- (undocumented)
-
numActives
public int numActives()Description copied from interface:MatrixFind the number of values stored explicitly. These values can be zero as well.- Specified by:
numActivesin interfaceMatrix- Returns:
- (undocumented)
-
colIter
Description copied from interface:MatrixReturns an iterator of column vectors. This operation could be expensive, depending on the underlying storage. -
asML
Description copied from interface:MatrixConvert this matrix to the new mllib-local representation. This does NOT copy the data; it copies references.
-