Pyspark机器学习:向量及其常用操作
生活随笔
收集整理的這篇文章主要介紹了
Pyspark机器学习:向量及其常用操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spark版本:V3.2.1
??本篇主要介紹pyspark.ml.linalg中的向量操作。
1. DenseVector(稠密向量)
1.1 創建
稠密向量和一般的數組差不多,其創建方法如下:
from pyspark.ml import linalg import numpy as np dvect1=linalg.Vectors.dense([1,2,3,4,5]) dvect2=linalg.Vectors.dense(1.2,3,3,4,5) print(dvect1) print(dvect2)其結果如下(注意其數據類型為float型):
1.2 常用操作
- 對兩個長度相同的向量可以進行加減乘除操作。具體如下:
其結果如下:
- 可以使用numpy.darray中的一些屬性
- dot點乘操作
- 求向量的范式
其結果如下:
- numNonZeros()統計非0元素的個數
- squared_distance()求兩個維度相同的向量的平方距離
- 取出向量的值
2. SparseVector(稀疏向量)
2.1 創建
稀疏向量的創建主要有以下幾種方式:
- Vectors.sparse(向量長度, 索引數組,與索引數組所對應的數值數組),其中索引從0開始編號,下同;
- Vectors.sparse(向量長度, {索引:數值,索引:數值,…\dots…})
- Vectors.sparse(向量長度,[(索引,數值),(索引,數值),…\dots…])
舉例如下:
svect1=linalg.Vectors.sparse(3,[0,1],[3.4,4.5]) svect2=linalg.Vectors.sparse(3,{0:3.4,2:4.5}) svect3=linalg.Vectors.sparse(4,[(2,3),(3,2.3)])2.2 常用操作
稀疏變量中一些操作與稠密向量的操作一致,不再贅述。這里只介紹以下兩個操作:
- toArray顯示稀疏變量的所有數值
其結果如下:
- indices()返回稀疏向量中非0元素的索引值
總結
以上是生活随笔為你收集整理的Pyspark机器学习:向量及其常用操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯15单片机软件环境搭建
- 下一篇: this指针