Skip to content

Commit 7337fa7

Browse files
authored
Update python_numpy.py
1 parent 098c310 commit 7337fa7

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

python_numpy.py

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,4 +147,60 @@
147147
for i in arr2.flat: # 也可以用arr2.flatten()
148148
print(i)
149149

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)
150190

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

Comments
 (0)