목차
배열 (Copy / View) 차이점
배열 Copy
배열 view
배열의 데이터 개별소유 여부 확인
배열 (Copy / View) 차이점
copy()
원본과 복사본이 별개 .
즉, 서로 영향 안 미침.
즉, 복사본 배열이 데이터 개별 소유 O.
view()
원본과 복사본 상호 영향 .
즉, 서로 영향 미침.
즉, 복사본 배열이 데이터 개별 소유 X.
배열 Copy
※ 원본 변경 시, 복사본에 영향 안 미침.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 34
print(arr) # [34 2 3 4 5]
print(x) # [1 2 3 4 5]
※ 복사본 변경 시, 원본에 영향 안 미침.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
x[0] = 34
print(arr) # [1 2 3 4 5]
print(x) # [34 2 3 4 5]
배열 view
※ 원본 변화가 복사본에 영향 미침.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 34
print(arr) # [34 2 3 4 5]
print(x) # [34 2 3 4 5]
※ 복사본 변화가 원본에 영향 미침.
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 34
print(arr) # [34 2 3 4 5]
print(x) # [34 2 3 4 5]
배열의 데이터 개별소유 여부 확인
NumPy 배열 객체의 base 속성 이용.
※ copy() 로 생성된 배열 (= 데이터 개별 소유 O) 경우, None 반환.
※ view() 로 생성된 배열 (= 데이터 개별 소유 X) 경우, 원본 배열 반환.
[예제]
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
y = arr.view()
print(x.base ) # None
print(y.base ) # [1 2 3 4 5]
주소 복사
랜덤 이동
최신댓글