日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Breeze库API总结(Spark线性代数库)(转载)

發布時間:2024/1/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Breeze库API总结(Spark线性代数库)(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導入

?

import breeze.linalg._ import breeze.numerics._

?

Spark Mllib底層的向量、矩陣運算使用了Breeze庫,Breeze庫提供了Vector/Matrix的實現以及相應計算的接口(Linalg)。但是在MLlib里面同時也提供了Vector和Linalg等的實現。在使用Breeze庫時,需要導入相關包:

Import breeze.linalg._

Import breeze.numeric._

?

Breeze創建函數:

操作名稱

Breeze函數

輸出結果

對應Numpy函數

全0矩陣

DenseMatrix.zeros[Double](2,3)

0.0 0.0 0.0

0.0 0.0 0.0

zeros((2,3))

全0向量

DenseVector.zeros[Double](3)

DenseVector(0.0,0.0,0.0)

zeros(3)

全1向量

DenseVector.ones[Double](3)

DenseVector(1.0,1.0,1.0)

ones(3)

按數值填充向量

DenseVector.fill(3){1.0}

DenseVector(1.0,1.0,1.0)

ones(3)*1.0

生成隨機向量

DenseVector.range(start,end,step), Vector.rangeD(start,end,step)

DenseVector(1,3,5,7,9)

?

線性等分向量(用于產生Start, end之間的N點行矢量)

DenseVector.linspace(start,end,numvals)

?

?

單位矩陣

DenseMatr.eye[Double](3)

1.0 0.0 0.0

0.0 1.0 0.0

0.0 0.0 1.0

eye(3)

對角矩陣

Diag(DenseVector(1.0,2.0,3.0))

1.0 0.0 0.0

0.0 2.0 0.0

0.0 0.0 3.0

diag((1.0,2.0,3.0))

按照行創建矩陣

DenseMatrix((1.0,2.0),(3.0,4.0))

1.0 2.0

3.0 4.0

array([[1.0,2.0],[3.0,4.0]])

按照行創建向量

DenseVector(1,2,3,4)

[1 2 3 4]

array([1,2,3,4])

向量轉置

DenseVector(1,2,3,4).t

[1 2 3 4]T

array([1 2 3 4]).reshape(-1,1)

從函數創建向量

DenseVector.tabulate(3){i => i*2}

[0 1 4]

?

從函數創建矩陣

DenseMatrix.tabulate(3,2){case(i,j) => i+j}

0 1

1 2

2 3

?

從數組創建向量

new DenseVector(array(1, 2, 3,4))

[1 2 3 4]

?

從數組創建矩陣

new DenseMatrix(2,3,array(11,12,13,21.22,23))

11 12 13

21 22 23

?

0到1的隨機向量

DenseVector.rand(4)

[0.0222 0.2231 0.5356 0.6902]

?

0到1的隨機矩陣

DenseMatrix.rand(2,3)

0.2122 0.3033 0.8675

0.6628 0.0023 0.9987

?

?

Breeze元素訪問

操作名稱

Breeze函數

對應Numpy函數

指定位置

a(0,1)

a[0,1]

向量子集

a(1 to 4), a(1 until 5), a.slice(1,5)

a[1:5]

按照指定步長取子集

a(5 to 0 by -1)

a[5:0:-1]

指定開始位置至結尾

a(1 to -1)

a[1:]

最后一個元素

a(-1)

a[-1]

矩陣指定列

a(::, 2)

a[:,2]

?

Breeze元素操作

操作名稱

Breeze函數

對應Numpy函數

調整矩陣形狀

a.reshape(3,2)

a.reshape(3,2)

矩陣轉成向量

a.toDenseVector(Makes copy)

a.flatten()

復制下三角

lowerTriangular(a)

tril(a)

復制上三角

upperTriangular(a)

triu(a)

矩陣復制

a.copy

np.copy(a)

取對角線元素

diag(a)

diagonal(a)

子集賦數值

a(1 to 4) := 5.0

a[1:4]=5.0

子集賦向量

a(1 to 4) := DenseVector(1.0,2.0,3.0)

a[1:4]=[1.0 2.0 3.0]

矩陣賦值

a(1 to 3, 1 to 3) := 5.0

a[2:4, 2:4] = 5.0

矩陣列賦值

a(::, 2) := 5.0

a(:,3) = 5

垂直連接矩陣

DenseMatrix.vertcat(a,b)

[a;b]

橫向連接矩陣

DenseMatrix.horzcat(a,b)

[a,b]

向量連接

DenseVector.vertcat(a,b)

[a b]

?

Breeze數值計算函數

操作名稱

Breeze函數

對應Numpy函數

元素加法

a + b

a + b

元素乘法

a :* b

a * b

元素除法

a :/ b

a / b

元素比較

a :< b

a < b

元素相等

a :== b

a == b

元素追加

a :+= 1.0

a += 1

元素追乘

a :*= 2.0

a *= 2

向量點積

a dot b, a.t * bT

dot(a,b)

元素最大值

max(a)

a.max()

元素最大值及位置

argmax(a)

a.argmax()

?

Breeze求和函數

操作名稱

Breeze函數

對應Numpy函數

元素求和

sum(a)

a.sum()

每一列求和

sum(a, axis._0), sum(a(::,*))

sum(a,0)

每一行求和

sum(a,axis._1), sum(a(*, ::))

sum(a,1)

對角線元素和

trace(a)

a.trace()

累積和

accumulate(a)

a.cumsum()

?

Breeze布爾函數

操作名稱

Breeze函數

對應Numpy函數

元素與操作

a :& b

a & b

元素或操作

a :| b

a | b

元素非操作

!a

~a

任意元素非零

any(a)

any(a)

所有元素非零

all(a)

all(a)

?

Breeze線性代數函數

操作名稱

Breeze函數

對應Numpy函數

線性求解

a \ b

linalg.solve(a,b)

轉置

a.t

a.conj.transpose()

求行列式

det(a)

linalg.det(a)

求逆

inv(a)

linalg.inv(a)

求偽逆

pinv(a)

linalg.pinv(a)

求范數

norm(a)

norm(a)

特征值和特征向量

eigSym(a)

linalg.eig(a)[0]

特征值

val(er,ei,_) = eig(a)(實部與虛部分開)

lialg.eig(a)[0]

特征向量

eig(a)._3

?

奇異值分解

val svd.SVD(u,s,v) = svd(a)

linalg.svd(a)

求矩陣的秩

rank(a)

rank(a)

矩陣長度

a.length

a.size

矩陣行數

a.rows

a.shape[0]

矩陣列數

a.cols

a.shape[1]

?

Breeze取整函數

操作名稱

Breeze函數

對應Numpy函數

四舍五入

round(a)

around(a)

最小整數

ceil(a)

ceil(a)

最大整數

floor(a)

floor(a)

符號函數

signum(a)

sign(a)

取正數

abs(a)

abs(a)

?

BLAS向量-向量運算

SROTG

Givens旋轉設置

SROTMG

改進Givens旋轉設置

SROT

Givens旋轉

SROTM

改進Givens旋轉

SSWAP

交換x和y

SSCAL

常數a乘以向量x()

SCOPY

把x復制到y

SAXPY

向量y+常數a乘以向量x(y = a*x + y)

SDOT

點積

SDSDOT

擴展精度累積的點積

SNRM2

歐氏范數

SCNRM2

歐氏范數

SASUM

絕對值之和

ISAMAX

最大值位置

?

BLAS矩陣-向量運算

SGEMV

矩陣向量乘法

SGBMV

帶狀矩陣向量乘法

SSYMV

對稱矩陣向量乘法

SSBMV

對稱帶狀矩陣向量乘法

SSPMV

對稱填充矩陣向量乘法

STRMV

三角矩陣向量乘法

STBMV

三角帶狀矩陣向量乘法

STPMV

三角填充矩陣向量乘法

STRSV

求解三角矩陣

STBSV

求解三角帶狀矩陣

STPSV

求解三角填充矩陣

SGER

A := alpha*x*y’?+ A

SSYR

A := alpha*x*x’?+ A

SSPR

A := alpha*x*x’?+ A

SSYR2

A := alpha*x*y’?+ alpha*y*x’?+ A

SSPR2

A := alpha*x*y’?+ alpha*y*x’?+ A

?

BLAS矩陣-矩陣運算

SGEMM

矩陣乘法

SSYMM

對稱矩陣乘法

SSYPK

對稱矩陣的秩-k修正

SSYR2K

對稱矩陣的秩-2k修正

STRMM

三角矩陣乘法

STRSM

多重右端的三角線性方程組求解

?

?

?

?

?

?

BLAS向量-向量運算?
SROTGGivens旋轉設置
SROTMG改進Givens旋轉設置
SROTGivens旋轉
SROTM改進Givens旋轉
SSWAP交換x和y
SSCAL常數a乘以向量x()
SCOPY把x復制到y
SAXPY向量y+常數a乘以向量x(y?=?a*x?+?y)
SDOT點積
SDSDOT擴展精度累積的點積
SNRM2歐氏范數
SCNRM2歐氏范數
SASUM絕對值之和
ISAMAX最大值位置
??
BLAS矩陣-向量運算?
SGEMV矩陣向量乘法
SGBMV帶狀矩陣向量乘法
SSYMV對稱矩陣向量乘法
SSBMV對稱帶狀矩陣向量乘法
SSPMV對稱填充矩陣向量乘法
STRMV三角矩陣向量乘法
STBMV三角帶狀矩陣向量乘法
STPMV三角填充矩陣向量乘法
STRSV求解三角矩陣
STBSV求解三角帶狀矩陣
STPSV求解三角填充矩陣
SGERA?:=?alpha*x*y’?+?A
SSYRA?:=?alpha*x*x’?+?A
SSPRA?:=?alpha*x*x’?+?A
SSYR2A?:=?alpha*x*y’?+?alpha*y*x’?+?A
SSPR2A?:=?alpha*x*y’?+?alpha*y*x’?+?A
??
BLAS矩陣-矩陣運算?
SGEMM矩陣乘法
SSYMM對稱矩陣乘法
SSYPK對稱矩陣的秩-k修正
SSYR2K對稱矩陣的秩-2k修正
STRMM三角矩陣乘法
STRSM多重右端的三角線性方程組求解

?

?

?

向量與向量

  • 加:+?? ?減:-? ?點乘: ?:* ? 點除::/ ???向量乘法: * ?向量除法: /

矩陣與矩陣

  • 加:+?? ?減:-? ?點乘: ?:*?? 點除::/ ? ? ? ?矩陣乘法: * ?矩陣除法: /

矩陣或向量與數值

  • 加:+?? 減:- ???乘:* ???除:/ ?

矩陣和向量

  • 加:+?? ?減:-???點乘: ?:*?? 點除::/ ? ? ? ?矩陣乘法: * ?矩陣除法: /
  • Matrix(*, ::)+Vector 逐行

  • Matrix(::, *)+Vector 逐列

總結

以上是生活随笔為你收集整理的Breeze库API总结(Spark线性代数库)(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。