|
147 | 147 | for i in arr2.flat: # 也可以用arr2.flatten() |
148 | 148 | print(i) |
149 | 149 |
|
| 150 | +# 矩阵合并与分割 |
| 151 | +# 矩阵合并 |
| 152 | +arr1=np.array([1,2,3,6]) |
| 153 | +arr2=np.arange(4) |
| 154 | +arr3=np.arange(2,16+1,2).reshape(2,4) |
| 155 | +print(arr1) |
| 156 | +print(arr2) |
| 157 | +print(arr3) |
| 158 | + |
| 159 | +arr_hor=np.hstack((arr1,arr2)) # 水平合并,horizontal |
| 160 | +arr_ver=np.vstack((arr1,arr3)) # 垂直合并,vertical |
| 161 | +print(arr_hor) |
| 162 | +print(arr_ver) |
| 163 | + |
| 164 | +# 矩阵分割 |
| 165 | +print('arr3: ',arr3) |
| 166 | +print(np.split(arr3,4,axis=1)) # 将矩阵按列均分成4块 |
| 167 | +print(np.split(arr3,2,axis=0)) # 将矩阵按行均分成2块 |
| 168 | +print(np.hsplit(arr3,4)) # 将矩阵按列均分成4块 |
| 169 | +print(np.vsplit(arr3,2)) # 将矩阵按行均分成2块 |
| 170 | +print(np.array_split(arr3,3,axis=1)) # 将矩阵进行不均等划分 |
| 171 | + |
| 172 | +# numpy复制:浅复制,深复制 |
| 173 | +# 浅复制 |
| 174 | +arr1=np.array([3,1,2,3]) |
| 175 | +print(arr1) |
| 176 | +a1=arr1 |
| 177 | +b1=a1 |
| 178 | +# 通过上述赋值运算,arr1,a1,b1都指向了同一个地址(浅复制) |
| 179 | +print(a1 is arr1) |
| 180 | +print(b1 is arr1) |
| 181 | +print(id(a1)) |
| 182 | +print(id(b1)) |
| 183 | +print(id(arr1)) |
| 184 | + |
| 185 | +# 会发现通过b1[0]改变内容,arr1,a1,b1的内容都改变了 |
| 186 | +b1[0]=6 |
| 187 | +print(b1) |
| 188 | +print(a1) |
| 189 | +print(arr1) |
150 | 190 |
|
| 191 | +# 深复制 |
| 192 | +arr2=np.array([3,1,2,3]) |
| 193 | +print('\n') |
| 194 | +print(arr2) |
| 195 | +b2=arr2.copy() # 深复制,此时b2拥有不同于arr2的空间 |
| 196 | +a2=b2.copy() |
| 197 | +# 通过上述赋值运算,arr1,a1,b1都指向了不同的地址(深复制) |
| 198 | +print(id(arr2)) |
| 199 | +print(id(a2)) |
| 200 | +print(id(b2)) |
| 201 | +# 此时改变b2,a2的值,互不影响 |
| 202 | +b2[0]=1 |
| 203 | +a2[0]=2 |
| 204 | +print(b2) |
| 205 | +print(a2) |
| 206 | +print(arr2) |
0 commit comments