1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
| [0 1 2 3] [ 1. 2.71828183 7.3890561 20.08553692] [0. 1. 1.41421356 1.73205081] #floor():向下取整,例如3.5 取整后为3 b = np.floor(10*np.random.random((3,4))) print(b) print("-----") #将矩阵拉为向量 print(b.ravel()) print("-----") #调整结构 b.shape = (6,2) print(b) #行和列转换 print("-----") print(b.T) [[7. 1. 5. 6.] [7. 1. 2. 4.] [1. 5. 7. 4.]] ----- [7. 1. 5. 6. 7. 1. 2. 4. 1. 5. 7. 4.] ----- [[7. 1.] [5. 6.] [7. 1.] [2. 4.] [1. 5.] [7. 4.]] ----- [[7. 5. 7. 2. 1. 7.] [1. 6. 1. 4. 5. 4.]] #reshape()自动计算列,只要将最后一个数改为-1即可。 b.reshape(3,-1) array([[7., 1., 5., 6.], [7., 1., 2., 4.], [1., 5., 7., 4.]]) #矩阵拼接 import numpy as np a = np.floor(10*np.random.random((2,2))) b = np.floor(10*np.random.random((2,2))) print(a) print("-----") print(b) print("-----") #横向拼接 print(np.hstack((a,b))) print("-----") #纵向拼接 print(np.vstack((a,b))) [[1. 8.] [7. 6.]] ----- [[3. 9.] [7. 5.]] ----- [[1. 8. 3. 9.] [7. 6. 7. 5.]] ----- [[1. 8.] [7. 6.] [3. 9.] [7. 5.]] #矩阵切分 a = np.floor(10*np.random.random((2,12))) print(a) [[4. 3. 0. 7. 6. 7. 7. 8. 9. 1. 2. 7.] [5. 5. 9. 1. 1. 4. 5. 5. 4. 2. 8. 8.]] #横向切分 #切成3份 np.hsplit(a,3) [array([[4., 3., 0., 7.], [5., 5., 9., 1.]]), array([[6., 7., 7., 8.], [1., 4., 5., 5.]]), array([[9., 1., 2., 7.], [4., 2., 8., 8.]])] #横向指定位置切分 np.hsplit(a,(3,4)) [array([[4., 3., 0.], [5., 5., 9.]]), array([[7.], [1.]]), array([[6., 7., 7., 8., 9., 1., 2., 7.], [1., 4., 5., 5., 4., 2., 8., 8.]])] #纵向切分 a = np.floor(10*np.random.random((12,2))) print(a) print(np.vsplit(a,3)) [[8. 4.] [6. 1.] [0. 2.] [7. 5.] [7. 6.] [7. 6.] [3. 3.] [8. 0.] [5. 6.] [1. 3.] [1. 2.] [1. 5.]] [array([[8., 4.], [6., 1.], [0., 2.], [7., 5.]]), array([[7., 6.], [7., 6.], [3., 3.], [8., 0.]]), array([[5., 6.], [1., 3.], [1., 2.], [1., 5.]])] #复制的不同操作 #赋值,a、b变量指向了相同的位置,当a和b二者任意出现改变时,数据均会发生变化 a = np.arange(12) print(a) b = a print(a is b) b.shape = (3,4) print(a.shape) print(id(a)) print(id(b)) [ 0 1 2 3 4 5 6 7 8 9 10 11] True (3, 4) 4562436864 4562436864 #浅复制 c = a.view() print(c is a) c.shape = (2,6) print(a.shape) c[1,0] = 123 print(a) print(id(a)) print(id(b)) False (3, 4) [[ 0 1234 2 3] [1234 5 123 1234] [ 8 9 10 11]] 4562436864 4562436864 #深复制 a = np.arange(12) b = a.copy() a.shape = (3,4) b.shape = (2,6) a[0,0] = 123 b[1,0] = 234 print(a) print(b) print(id(a)) print(id(b)) [[123 1 2 3] [ 4 5 6 7] [ 8 9 10 11]] [[ 0 1 2 3 4 5] [234 7 8 9 10 11]] 4562468656 4562467776
|