1.NumPy訪問【數組&矩陣】
2.矩陣的運算
3.NumPy通用函數
4.NumPy矩陣的合並和分割
print "**********Numpy訪問(數組&矩陣)***********" def f(x,y): return 10*x+y arr8=np.fromfunction(f,(4,3),dtype=int) #創建矩陣 print arr8 print "****索引訪問矩陣****" print arr8[2,1] print "****切片訪問矩陣****" print arr8[0:2,:] #訪問矩陣前2行 #切片操作就是在索引操作的基礎上對行和列分別操作 print arr8[1:3,1:2] #訪問矩陣的第一行和第二行的第一列(下標從0開始) print arr8[0:2,] #矩陣前2行 print "矩陣第一列" print arr8[:,1] print "矩陣最后一行" print arr8[3:4,] print arr8[-1] print "****迭代器訪問矩陣****" for row in arr8: print row for i in [0,1,2]: #修改矩陣的值 row[i]+=8 print arr8 for element in arr8.flat: #訪問矩陣中的元素 print element, # element +=20 # print element, print "**********NumPy【矩陣的運算】*************" ar1=np.array([[2,1],[1,2]]) ar2=np.array([[1,2],[3,4]]) print ar1-ar2 print ar1**2 print ar2*3 print ar1*ar2 #普通乘法 print np.dot(ar1,ar2) #矩陣乘法 print ar2.T #轉置 print np.linalg.inv(ar2) #矩陣的逆 print ar2.sum() #矩陣元素求和 print ar2.max() #矩陣最大的元素 ar3=np.array([[1,2],[3,4],[5,6]]) print ar3.cumsum(1) #按行累計總和 print "**************" print ar2 ar4=np.array([1,8,9,0,5]) ar5=np.array([[1,8,9,0,5],[2,7,0,6,4],[3,0,6,5,9]]) print ar4 print np.nonzero(ar4) #返回數組非零元素的位置 print np.nonzero(ar5) #第二個數組返回非零元素的位置 print "**************NumPy通用函數******************" print np.exp(ar1) print np.sin(ar1) #弧度制 print np.sqrt(ar1) #開方函數 print np.add(ar1,ar2) print "*************NumPy 矩陣的合並和分割***************" ar7=np.vstack((ar1,ar2)) #縱向合並矩陣 print ar7 ar8=np.hstack((ar1,ar2)) print ar8 #橫向合並矩陣 print "縱向分割" print np.vsplit(ar7,2) print "橫向分割" print np.hsplit(ar8,2)
結果:
**********Numpy訪問(數組&矩陣)*********** [[ 0 1 2] [10 11 12] [20 21 22] [30 31 32]] ****索引訪問矩陣**** 21 ****切片訪問矩陣**** [[ 0 1 2] [10 11 12]] [[11] [21]] [[ 0 1 2] [10 11 12]] 矩陣第一列 [ 1 11 21 31] 矩陣最后一行 [[30 31 32]] [30 31 32] ****迭代器訪問矩陣**** [0 1 2] [10 11 12] [20 21 22] [30 31 32] [[ 8 9 10] [18 19 20] [28 29 30] [38 39 40]] 8 9 10 18 19 20 28 29 30 38 39 40 **********NumPy【矩陣的運算】************* [[ 1 -1] [-2 -2]] [[4 1] [1 4]] [[ 3 6] [ 9 12]] [[2 2] [3 8]] [[ 5 8] [ 7 10]] [[1 3] [2 4]] [[-2. 1. ] [ 1.5 -0.5]] 10 4 [[ 1 3] [ 3 7] [ 5 11]] ************** [[1 2] [3 4]] [1 8 9 0 5] (array([0, 1, 2, 4]),) (array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2]), array([0, 1, 2, 4, 0, 1, 3, 4, 0, 2, 3, 4])) **************NumPy通用函數****************** [[ 7.3890561 2.71828183] [ 2.71828183 7.3890561 ]] [[ 0.90929743 0.84147098] [ 0.84147098 0.90929743]] [[ 1.41421356 1. ] [ 1. 1.41421356]] [[3 3] [4 6]] *************NumPy 矩陣的合並和分割*************** [[2 1] [1 2] [1 2] [3 4]] [[2 1 1 2] [1 2 3 4]] 縱向分割 [array([[2, 1], [1, 2]]), array([[1, 2], [3, 4]])] 橫向分割 [array([[2, 1], [1, 2]]), array([[1, 2], [3, 4]])]
