gpt4 book ai didi

python - 在 PySpark 中转置 RowMatrix

转载 作者:太空狗 更新时间:2023-10-30 02:54:08 25 4
gpt4 key购买 nike

您好,我想知道如何在 PySpark 中转置 RowMatrix。

data = [(MLLibVectors.dense([1.0, 2.0]), ), (MLLibVectors.dense([3.0, 4.0]), )]

df=sqlContext.createDataFrame(data, ["features"])
features=df.select("features").rdd.map(lambda row: row[0])

mat=RowMatrix(features)
print mat.rows.first()
#[1.0,2.0]

mat=mat.Transpose()

print mat.rows.first()
#[1.0,3.0]

有人用 Python 实现这个吗?我看过类似的帖子,但一切都在 Scala 中。谢谢。

最佳答案

RowMatrix没有 transpose 方法。您可能需要 BlockMatrixCoordinateMatrix .


from pyspark.mllib.linalg.distributed import CoordinateMatrix, MatrixEntry

cm = CoordinateMatrix(
mat.rows.zipWithIndex().flatMap(
lambda x: [MatrixEntry(x[1], j, v) for j, v in enumerate(x[0])]
)
)

cm.toRowMatrix().rows.first().toArray()
# array([ 1., 2.])

cm.transpose().toRowMatrix().rows.first().toArray()
# array([ 1., 3.])

关于python - 在 PySpark 中转置 RowMatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com