導(dǎo)入
import breeze.linalg._
import breeze.numerics._
?
?
| Breeze創(chuàng)建函數(shù): |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 全0矩陣 |
DenseMatrix.zeros[Double](2,3) |
zeros((2,3)) |
| 全0向量 |
DenseVector.zeros[Double](3) |
zeros(3) |
| 全1向量 |
DenseVector.ones[Double](3) |
ones(3) |
| 按數(shù)值填充向量 |
DenseVector.fill(3){1.0} |
ones(3)*1.0 |
| 生成隨機(jī)向量 |
DenseVector.range(start,end,step),?Vector.rangeD(start,end,step) |
? |
| 線性等分向量(用于產(chǎn)生Start,?end之間的N點行矢量) |
DenseVector.linspace(start,end,numvals) |
? |
| 單位矩陣 |
DenseMatr.eye[Double](3) |
eye(3) |
| 對角矩陣 |
Diag(DenseVector(1.0,2.0,3.0)) |
diag((1.0,2.0,3.0)) |
| 按照行創(chuàng)建矩陣 |
DenseMatrix((1.0,2.0),(3.0,4.0)) |
array([[1.0,2.0],[3.0,4.0]]) |
| 按照行創(chuàng)建向量 |
DenseVector(1,2,3,4) |
array([1,2,3,4]) |
| 向量轉(zhuǎn)置 |
DenseVector(1,2,3,4).t |
array([1?2?3?4]).reshape(-1,1) |
| 從函數(shù)創(chuàng)建向量 |
DenseVector.tabulate(3){i?=>?i*2} |
? |
| 從函數(shù)創(chuàng)建矩陣 |
DenseMatrix.tabulate(3,2){case(i,j)?=>?i j} |
? |
| 從數(shù)組創(chuàng)建向量 |
new?DenseVector(array(1,?2,?3,4)) |
? |
| 從數(shù)組創(chuàng)建矩陣 |
new?DenseMatrix(2,3,array(11,12,13,21.22,23)) |
? |
| 0到1的隨機(jī)向量 |
DenseVector.rand(4) |
? |
| 0到1的隨機(jī)矩陣 |
DenseMatrix.rand(2,3) |
? |
| ? |
? |
? |
| Breeze元素訪問 |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 指定位置 |
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] |
| 指定開始位置至結(jié)尾 |
a(1?to?-1) |
a[1:] |
| 最后一個元素 |
a(-1) |
a[-1] |
| 矩陣指定列 |
a(::,?2) |
a[:,2] |
| ? |
? |
? |
| Breeze元素操作 |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 調(diào)整矩陣形狀 |
a.reshape(3,2) |
a.reshape(3,2) |
| 矩陣轉(zhuǎn)成向量 |
a.toDenseVector(Makes?copy) |
a.flatten() |
| 復(fù)制下三角 |
lowerTriangular(a) |
tril(a) |
| 復(fù)制上三角 |
upperTriangular(a) |
triu(a) |
| 矩陣復(fù)制 |
a.copy |
np.copy(a) |
| 取對角線元素 |
diag(a) |
diagonal(a) |
| 子集賦數(shù)值 |
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數(shù)值計算函數(shù) |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 元素加法 |
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求和函數(shù) |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 元素求和 |
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布爾函數(shù) |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 元素與操作 |
a?:&?b |
a?&?b |
| 元素或操作 |
a?:|?b |
a?|?b |
| 元素非操作 |
!a |
~a |
| 任意元素非零 |
any(a) |
any(a) |
| 所有元素非零 |
all(a) |
all(a) |
| ? |
? |
? |
| Breeze線性代數(shù)函數(shù) |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 線性求解 |
a?\?b |
linalg.solve(a,b) |
| 轉(zhuǎn)置 |
a.t |
a.conj.transpose() |
| 求行列式 |
det(a) |
linalg.det(a) |
| 求逆 |
inv(a) |
linalg.inv(a) |
| 求偽逆 |
pinv(a) |
linalg.pinv(a) |
| 求范數(shù) |
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 |
| 矩陣行數(shù) |
a.rows |
a.shape[0] |
| 矩陣列數(shù) |
a.cols |
a.shape[1] |
| ? |
? |
? |
| Breeze取整函數(shù) |
? |
? |
| 操作名稱 |
Breeze函數(shù) |
對應(yīng)Numpy函數(shù) |
| 四舍五入 |
round(a) |
around(a) |
| 最小整數(shù) |
ceil(a) |
ceil(a) |
| 最大整數(shù) |
floor(a) |
floor(a) |
| 符號函數(shù) |
signum(a) |
sign(a) |
| 取正數(shù) |
abs(a) |
abs(a) |
?
?
?
| BLAS向量-向量運算 |
? |
| SROTG |
Givens旋轉(zhuǎn)設(shè)置 |
| SROTMG |
改進(jìn)Givens旋轉(zhuǎn)設(shè)置 |
| SROT |
Givens旋轉(zhuǎn) |
| SROTM |
改進(jìn)Givens旋轉(zhuǎn) |
| SSWAP |
交換x和y |
| SSCAL |
常數(shù)a乘以向量x() |
| SCOPY |
把x復(fù)制到y(tǒng) |
| SAXPY |
向量y 常數(shù)a乘以向量x(y?=?a*x? ?y) |
| SDOT |
點積 |
| SDSDOT |
擴(kuò)展精度累積的點積 |
| SNRM2 |
歐氏范數(shù) |
| SCNRM2 |
歐氏范數(shù) |
| 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 |
多重右端的三角線性方程組求解 |
?
?
向量與向量
- 加: ?? ?減:-? ?點乘: ?:* ? 點除::/ ???向量乘法: * ?向量除法: /
矩陣與矩陣
- 加: ?? ?減:-? ?點乘: ?:*?? 點除::/ ? ? ? ?矩陣乘法: * ?矩陣除法: /
矩陣或向量與數(shù)值
- 加: ?? 減:- ???乘:* ???除:/ ?
矩陣和向量
- 加: ?? ?減:-???點乘: ?:*?? 點除::/ ? ? ? ?矩陣乘法: * ?矩陣除法: /
-
Matrix(*, ::) Vector 逐行
-
Matrix(::, *) Vector 逐列
?
?
參考文檔:
1. https://github.com/scalanlp/breeze/wiki/Quickstart
2.https://github.com/scalanlp/breeze/wiki/Linear-Algebra-Cheat-Sheet
3.http://blog.csdn.net/hoikinyiu/article/details/52662268
4.http://blog.csdn.net/wo334499/article/details/51728628
來源:http://www./content-4-186601.html
|