Python - numpy和list中的浅拷贝和深拷贝
numpy 中 np.copy() 方法是 深拷贝 ; 切片操作 是 浅拷贝 ; 直接赋值给另一个变量是 浅拷贝 。 # numpy深拷贝示例 In [ 12 ] : arr = np . zeros ( ( 3 , 3 ) ) In [ 13 ] : arr Out [ 13 ] : array ( [ [ 0 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] ] ) In [ 14 ] : b = arr . copy ( ) In [ 17 ] : b [ 0 , 0 ] = 1 # 更改b的值 In [ 18 ] : arr # arr不变,说明copy()方法是深拷贝 Out [ 18 ] : array ( [ [ 0 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] ] ) In [ 19 ] : b Out [ 19 ] : array ( [ [ 1 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] , [ 0 . , 0 . , 0 . ] ] ) # numpy浅拷贝示例 In [ 33 ] : b = arr # 直接赋值给变量b In [ 34 ] : b Out [ 34 ] : array