首页 > 技术文章 > 数组的复制copy

monsterhy123 2020-03-30 13:14 原文

 1 #导入numpy模块
 2 import numpy as np 
 3 #创建一个二维数组
 4 a = np.arange(1,13).reshape((3,4))
 5 print(a)
 6 #对a进行切片处理,获取第一二行,第一二列
 7 sub_a = a[:2,:2]
 8 print(sub_a)
 9 #对sub_a中第一行第一列的值进行修改
10 sub_a[0][0] = 100
11 print(sub_a)
12 print(a)
13 #通过切片可以获取新数组,即使赋值给新的变量,但还是原来数组的试图。
14 #如果对切片数组中元素的值进行修改会影响原来的数组。
15 
16 #达到修改子数组不影响原来数组,可以用copy方法实现
17 sub_aa = np.copy(a[:2,:2])  #深拷贝
18 sub_aa[0,0] = 200
19 print(sub_aa)
20 print(a)
 1 [[ 1  2  3  4]
 2  [ 5  6  7  8]
 3  [ 9 10 11 12]]
 4 [[1 2]
 5  [5 6]]
 6 [[100   2]
 7  [  5   6]]
 8 [[100   2   3   4]
 9  [  5   6   7   8]
10  [  9  10  11  12]]
11 [[200   2]
12  [  5   6]]
13 [[100   2   3   4]
14  [  5   6   7   8]
15  [  9  10  11  12]]

 

推荐阅读