标签:nec gpu pow 3.5 pydev 广播 理解 div style
(上接第一章)
1.2 对象、矩阵与矢量化编程
1.2.1对象与维度(略)
1.2.2初识矩阵(略)
1.2.3矢量化编程与GPU运算(略)
1.2.4理解数学公式与NumPy矩阵运算
1.矩阵的初始化
#coding:utf-8 import numpy as np #导入NumPy包 #创建3*5的全0矩阵和全1的矩阵 myZero = np.zeros([3,5])#3*5的全0矩阵 print myZero myZero = np.ones([3,5])##3*5的全1矩阵 print myZero
输出结果:
Connected to pydev debugger (build 141.1580) [[ 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)#3行4列的0~1之间的随机数矩阵 print myRand 输出结果如下: [[ 0.14689327 0.15077077 0.88018968 0.75112348] [ 0.30944489 0.77563281 0.82905038 0.25430367] [ 0.53958541 0.89695376 0.90681161 0.25453046]]
#单位阵 myEye = np.eye(3)#3*3的矩阵 print myEye 输出结果如下: [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]
2.矩阵的元素运算
矩阵的元素运算是指矩阵在元素级别的加减乘除运算。
#元素的加和减:条件是矩阵的行数和列数必须相同 from numpy import *#导入NumPy包 myOnes = ones([3,3])#3*3的全1矩阵 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 mymatrix.sum() 输出结果: 45
‘‘‘ 矩阵各元素的积:矩阵的点乘同维对应元素的相乘。 当矩阵的维度不同时,会根据一定的广播将维数扩 充到一致的形式 ‘‘‘ mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) mymatrix2 = 1.5*ones([3,3]) print multiply(mymatrix1,mymatrix2) 输出结果: [[ 1.5 3. 4.5] [ 6. 7.5 9. ] [ 10.5 12. 13.5]]
#矩阵各元素的n次幂:n=2 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) print power(mymatrix1,2) 输出结果: [[ 1 4 9] [16 25 36] [49 64 81]]
#矩阵乘以矩阵 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) mymatrix2 = mat([[1],[2],[3]]) print mymatrix1*mymatrix2 输出结果: [[14] [32] [50]]
#矩阵的转置 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) print mymatrix1.T #矩阵的转置 mymatrix1.transpose() #矩阵的转置 print mymatrix1 输出结果如下: [[1 4 7] [2 5 8] [3 6 9]] [[1 2 3] [4 5 6] [7 8 9]]
mymatrix = mymatrix1[0]#按行切片 print u"按行切片:",mymatrix mymatrix = mymatrix1.T[0]#按列切片 print u"按列切片:",mymatrix mymatrix = mymatrix1.copy()#矩阵的复制 print u"复制矩阵:",mymatrix #比较 print u"矩阵元素的比较:\n",mymatrix<mymatrix1.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]]
资料来源:《机器学习算法原理与编程实践》郑捷
标签:nec gpu pow 3.5 pydev 广播 理解 div style
原文地址:http://www.cnblogs.com/wuchuanying/p/6218815.html