您的位置:首页 > 编程语言 > Python开发

Machine Learning学习笔记:NumPy矩阵运算

2018-03-06 15:52 477 查看
1、矩阵的初始化
创建一个3*5的全0矩阵和全1矩阵:import numpy as np
myZero=np.zeros([3,5])
print(myZero)
myOnes=np.ones([3,5])
print(myOnes)
[[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]
[ 0.  0.  0.  0.  0.]]
[[ 1.  1.  1.  1.  1.]
[ 1.  1.  1.  1.  1.]
[ 1.  1.  1.  1.  1.]]

生成随机矩阵:myRand=np.random.rand(3,4)
print(myRand)
[[ 0.92835212  0.90350264  0.00297674  0.00219632]
[ 0.78849174  0.18478907  0.1904618   0.11003845]
[ 0.41306985  0.93001431  0.51307241  0.34831316]]


单位阵:myEye=np.eye(3)
print(myEye)
[[ 1.  0.  0.]
[ 0.  1.  0.]
[ 0.  0.  1.]]

2.矩阵的元素运算
元素相加和相减:from numpy import *
myOnes=ones([3,3])
myEye=eye(3)
print(myOnes+myEye)
print(myOnes-myEye)
[[ 2.  1.  1.]
[ 1.  2.  1.]
[ 1.  1.  2.]]
[[ 0.  1.  1.]
[ 1.  0.  1.]
[ 1.  1.  0.]]
矩阵数乘:mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
a=10
print(a*mymatrix)
[[10 20 30]
[40 50 60]
[70 80 90]]
矩阵所有元素求和:mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
print(sum(mymatrix))
45
矩阵各元素的积(Hadamard product):mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
mymatrix2=1.5*ones([3,3])
print(multiply(mymatrix,mymatrix2))
[[  1.5   3.    4.5]
[  6.    7.5   9. ]
[ 10.5  12.   13.5]]
矩阵各元素的n次幂:mylist=mat([[1,2,3],[4,5,6],[7,8,9]])
print(power(mymatrix,2))
[[ 1  4  9]
[16 25 36]
[49 64 81]]
3、矩阵的乘法:矩阵乘矩阵from numpy import *
mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
mymatrix2=mat([[1],[2],[3]])
print(mymatrix*mymatrix2)
[[14]
[32]
[50]]
4、矩阵的转置from numpy import *
mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
print(mymatrix.T)
mymatrix.transpose()
print(mymatrix)
[[1 4 7]
[2 5 8]
[3 6 9]]
[[1 2 3]
[4 5 6]
[7 8 9]]
5、矩阵的其它操作:行列数、切片、复制、比较from numpy import *

mymatrix=mat([[1,2,3],[4,5,6],[7,8,9]])
[m,n]=shape(mymatrix)
print('矩阵的行数和列数',m,n)

myscl1=mymatrix[0]
print('按行切片:',myscl1)

myscl2=mymatrix.T[0]
print('按列切片:',myscl2)

mycpmat=mymatrix.copy()
print('复制矩阵:\n',mycpmat)

print('矩阵元素的比较:\n',mymatrix<mymatrix.T)
矩阵的行数和列数 3 3
按行切片: [[1 2 3]]
按列切片: [[1 4 7]]
复制矩阵:
[[1 2 3]
[4 5 6]
[7 8 9]]
矩阵元素的比较:
[[False  True  True]
[False False  True]
[False False False]]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: