BlockMatrix¶
-
類
pyspark.mllib.linalg.distributed。
BlockMatrix
( 塊:pyspark.rdd.RDD(元組(元組(int,int],pyspark.mllib.linalg.Matrix]],rowsPerBlock:int,colsPerBlock:int,numRows:int=0,numCols:int=0 ) ¶ -
代表了一種分布式矩陣在本地塊矩陣。
- 參數
-
-
塊
pyspark.RDD
-
子矩陣塊的一個抽樣((blockRowIndex blockColIndex)子矩陣),形成這種分布矩陣。如果多個相同的塊索引存在,操作,比如添加和繁殖的結果將是不可預測的。
- rowsPerBlock int
-
組成每一塊的行數。塊形成最後一行不需要給定的行數。
- colsPerBlock int
-
列數,每一塊。塊形成最後一列不需要給定的列數。
- numRows int,可選
-
這個矩陣的行數。如果提供的值小於或等於零,將計算的行數numRows被調用。
- numCols int,可選
-
這個矩陣的列數。如果提供的值小於或等於零,列數時計算numCols被調用。
-
塊
方法
添加
(其他)增加了兩塊矩陣。
緩存
()緩存底層抽樣。
乘
(其他)離開這個BlockMatrix繁殖其他,另一個BlockMatrix。
numCols
()獲取或計算的關口。
numRows
()獲取或計算的行數。
堅持
(storageLevel)存在潛在的抽樣與指定的存儲水平。
減去
(其他)減去給定的塊矩陣其他從這一塊矩陣:——其他。
這個矩陣轉換為一個CoordinateMatrix。
這個矩陣轉換為一個IndexedRowMatrix。
收集分布式矩陣作為DenseMatrix司機。
轉置
()這個BlockMatrix轉置。
驗證
()驗證矩陣信息對矩陣數據塊(塊),如果發現任何錯誤拋出一個異常。
屬性
子矩陣塊的抽樣((blockRowIndex blockColIndex)、子矩陣),形成這種分布矩陣。
列數,每一塊。
列數BlockMatrix塊的。
BlockMatrix的塊的行數。
組成每一塊的行數。
方法的文檔
-
添加
( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
增加了兩塊矩陣。矩陣必須有相同的大小和匹配rowsPerBlock和colsPerBlock值。如果一個被添加的子矩陣塊SparseMatrix,由此產生的子矩陣塊也將SparseMatrix,即使它被添加到DenseMatrix。如果兩個密集子矩陣塊,塊也將DenseMatrix的輸出。
例子
> > >dm1=矩陣。密集的(3,2,(1,2,3,4,5,6])> > >dm2=矩陣。密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣。稀疏的(3,2,(0,1,3),(0,1,2),(7,11,12])> > >blocks1=sc。並行化((((0,0),dm1),((1,0),dm2)))> > >blocks2=sc。並行化((((0,0),dm1),((1,0),dm2)))> > >blocks3=sc。並行化((((0,0),sm),((1,0),dm2)))> > >mat1=BlockMatrix(blocks1,3,2)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1。添加(mat2)。toLocalMatrix()DenseMatrix (6 2 (2.0, 4.0, 6.0, 14.0, 16.0, 18.0, 8.0, 10.0, 12.0, 20.0, 22.0, 24.0), 0)
> > >mat1。添加(mat3)。toLocalMatrix()DenseMatrix (6 2 (8.0, 2.0, 3.0, 14.0, 16.0, 18.0, 4.0, 16.0, 18.0, 20.0, 22.0, 24.0), 0)
-
緩存
( )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
緩存底層抽樣。
-
乘
( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
離開這個BlockMatrix繁殖其他,另一個BlockMatrix。的colsPerBlock這個矩陣必須相等rowsPerBlock的其他。如果其他包含任何SparseMatrix塊,他們將不得不被轉換成DenseMatrix塊。輸出BlockMatrix隻會由DenseMatrix塊。這可能會導致一些性能問題,直到支持添加兩個稀疏矩陣相乘。
例子
> > >dm1=矩陣。密集的(2,3,(1,2,3,4,5,6])> > >dm2=矩陣。密集的(2,3,(7,8,9,10,11,12])> > >dm3=矩陣。密集的(3,2,(1,2,3,4,5,6])> > >dm4=矩陣。密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣。稀疏的(3,2,(0,1,3),(0,1,2),(7,11,12])> > >blocks1=sc。並行化((((0,0),dm1),((0,1),dm2)))> > >blocks2=sc。並行化((((0,0),dm3),((1,0),dm4)))> > >blocks3=sc。並行化((((0,0),sm),((1,0),dm4)))> > >mat1=BlockMatrix(blocks1,2,3)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1。乘(mat2)。toLocalMatrix()DenseMatrix (2, 2, 242.0, 272.0, 350.0, 398.0, 0)
> > >mat1。乘(mat3)。toLocalMatrix()DenseMatrix (2, 2, 227.0, 258.0, 394.0, 450.0, 0)
-
numCols
( )→int¶ -
獲取或計算的關口。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))
> > >墊=BlockMatrix(塊,3,2)> > >打印(墊。numCols())2
> > >墊=BlockMatrix(塊,3,2,7,6)> > >打印(墊。numCols())6
-
numRows
( )→int¶ -
獲取或計算的行數。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))
> > >墊=BlockMatrix(塊,3,2)> > >打印(墊。numRows())6
> > >墊=BlockMatrix(塊,3,2,7,6)> > >打印(墊。numRows())7
-
堅持
( storageLevel:pyspark.storagelevel.StorageLevel )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
存在潛在的抽樣與指定的存儲水平。
-
減去
( 其他:pyspark.mllib.linalg.distributed.BlockMatrix )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
減去給定的塊矩陣其他從這一塊矩陣:——其他。矩陣必須有相同的大小和匹配rowsPerBlock和colsPerBlock值。如果其中一個的子矩陣塊被減去SparseMatrix,由此產生的子矩陣塊也將SparseMatrix,即使它被從DenseMatrix減去。如果兩個密集子矩陣塊減去,輸出塊也將DenseMatrix。
例子
> > >dm1=矩陣。密集的(3,2,(3,1,5,4,6,2])> > >dm2=矩陣。密集的(3,2,(7,8,9,10,11,12])> > >sm=矩陣。稀疏的(3,2,(0,1,3),(0,1,2),(1,2,3])> > >blocks1=sc。並行化((((0,0),dm1),((1,0),dm2)))> > >blocks2=sc。並行化((((0,0),dm2),((1,0),dm1)))> > >blocks3=sc。並行化((((0,0),sm),((1,0),dm2)))> > >mat1=BlockMatrix(blocks1,3,2)> > >mat2=BlockMatrix(blocks2,3,2)> > >mat3=BlockMatrix(blocks3,3,2)
> > >mat1。減去(mat2)。toLocalMatrix()DenseMatrix (6 2 (-4.0, -7.0, -4.0, 4.0, 7.0, 4.0, -6.0, -5.0, -10.0, 6.0, 5.0, 10.0), 0)
> > >mat2。減去(mat3)。toLocalMatrix()DenseMatrix (6 2 (6.0, 8.0, 9.0, -4.0, -7.0, -4.0, 10.0, 9.0, 9.0, -6.0, -5.0, -10.0), 0)
-
toCoordinateMatrix
( )→pyspark.mllib.linalg.distributed.CoordinateMatrix ¶ -
這個矩陣轉換為一個CoordinateMatrix。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(1,2,(1,2))),…((1,0),矩陣。密集的(1,2,(7,8)))))> > >墊=BlockMatrix(塊,1,2)。toCoordinateMatrix()> > >墊。條目。取(3)[MatrixEntry (0, 0, 1.0), MatrixEntry (0、1、2.0), MatrixEntry (1 0 7.0)]
-
toIndexedRowMatrix
( )→pyspark.mllib.linalg.distributed.IndexedRowMatrix ¶ -
這個矩陣轉換為一個IndexedRowMatrix。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)。toIndexedRowMatrix()
> > >#這BlockMatrix將有6個有效行,由於> > >#有兩個子矩陣塊堆疊,每3行。> > >#隨後IndexedRowMatrix還將有6行。> > >打印(墊。numRows())6
> > >#這BlockMatrix 2列有效,由於> > >#有兩個子矩陣塊堆疊,每個都有2列。> > >#隨後IndexedRowMatrix還將有2列。> > >打印(墊。numCols())2
-
toLocalMatrix
( )→pyspark.mllib.linalg.Matrix ¶ -
收集分布式矩陣作為DenseMatrix司機。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)。toLocalMatrix()
> > >#這BlockMatrix將有6個有效行,由於> > >#有兩個子矩陣塊堆疊,每3行。> > >#隨後DenseMatrix還將有6行。> > >打印(墊。numRows)6
> > >#這BlockMatrix 2列有效,由於> > >#有兩個子矩陣塊堆疊,每個都有2> > >#列。隨後DenseMatrix還將有2列。> > >打印(墊。numCols)2
-
轉置
( )→pyspark.mllib.linalg.distributed.BlockMatrix ¶ -
這個BlockMatrix轉置。返回一個新的BlockMatrix實例共享相同的底層數據。是一個懶惰的操作。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)
> > >mat_transposed=墊。轉置()> > >mat_transposed。toLocalMatrix()DenseMatrix (2、6 (1.0, 4.0, 2.0, 5.0, 3.0, 6.0, 7.0, 10.0, 8.0, 11.0, 9.0, 12.0), 0)
-
驗證
( )→沒有¶ -
驗證矩陣信息對矩陣數據塊(塊),如果發現任何錯誤拋出一個異常。
屬性的文檔
-
塊
¶ -
子矩陣塊的抽樣((blockRowIndex blockColIndex)、子矩陣),形成這種分布矩陣。
例子
> > >墊=BlockMatrix(…sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12))))),3,2)> > >塊=墊。塊> > >塊。第一個()((0,0),DenseMatrix (3 2 (1.0, 2.0, 3.0, 4.0, 5.0, 6.0), 0))
-
colsPerBlock
¶ -
列數,每一塊。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)> > >墊。colsPerBlock2
-
numColBlocks
¶ -
列數BlockMatrix塊的。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)> > >墊。numColBlocks1
-
numRowBlocks
¶ -
BlockMatrix的塊的行數。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)> > >墊。numRowBlocks2
-
rowsPerBlock
¶ -
組成每一塊的行數。
例子
> > >塊=sc。並行化((((0,0),矩陣。密集的(3,2,(1,2,3,4,5,6))),…((1,0),矩陣。密集的(3,2,(7,8,9,10,11,12)))))> > >墊=BlockMatrix(塊,3,2)> > >墊。rowsPerBlock3