1. 程式人生 > >Python資料處理之(九)Numpy copy & deep copy

Python資料處理之(九)Numpy copy & deep copy

一、= 的賦值方式會有關聯性

首先匯入numpy並建立變數a,b,c,d

>>> import numpy as np
>>> a=np.arange(4)
>>> print(a)
[0 1 2 3]
>>> b=a
>>> c=a
>>> d=b
>>> print(a,b,c,d)
[0 1 2 3] [0 1 2 3] [0 1 2 3] [0 1 2 3]
>>> a[0]=1
>>> print(a,b,c,d)
[
1 1 2 3] [1 1 2 3] [1 1 2 3] [1 1 2 3]

上邊可以看出改變a的值,其他幾個值也會跟著改變,同樣,改變d的值,其他幾個值也會跟著改變:

>>> d[0]=2
>>> print(a,b,c,d)
[2 1 2 3] [2 1 2 3] [2 1 2 3] [2 1 2 3]

二、copy的方式沒有關聯性

>>> b=a.copy()#deep copy
>>> print(a,b)
[2 1 2 3] [2 1 2 3]
>>> a[3]=44
>>
> print(a,b) [ 2 1 2 44] [2 1 2 3]

此時ab已經沒有關聯了