Python

[numpy] PY - NumPy Array Copy vs View (배열 복사 vs 뷰) ★

2941

목차

  1. 배열 (Copy / View) 차이점
  2. 배열 Copy
  3. 배열 view
  4. 배열의 데이터 개별소유 여부 확인

 

배열 (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]

 



분류 제목
howto Python - 리스트 중복요소 제거. ★ (Remove List Duplicate)
howto Python - 문자열 순서 뒤집기= 역순 ★ (Reverse a String)
howto Python - 사용자 입력값 더하기 ★ (Add Two Numbers)
shell Python Shell (파이썬 셸 : IDLE) 글자 크기 확대
shell Python 화면 청소 (= 파이썬 화면 지우기)
shell Python Shell (파이썬 셸 : IDLE) 라인 번호 표시
shell Python Shell (파이썬 셸 : IDLE) 입력했던 코드 불러오기. (= 재입력, 다시입력) + 파일…
shell Python Shell (파이썬 셸 : IDLE) 창크기 (= 창너비 x 창높이) 설정.
numpy PY - NumPy Intro (넘파이 소개)
numpy PY - NumPy Start (설치/시작/버전확인) ★ - 모듈 불러오기 (3가지 방법)
numpy PY - NumPy Creating Arrays (배열 생성) ★ - 배열 차원 (= 중첩배열 = 다차원배열…
numpy PY - NumPy Array Indexing (배열 색인) ★ - 배열 요소에 접근
numpy PY - NumPy Array Slicing (배열 자르기) ★ - 배열 요소 일부만 선택.
numpy PY - NumPy Data Types (데이터타입) ★ - 종류 / 확인 / 변환.
numpy PY - NumPy Array Copy vs View (배열 복사 vs 뷰) ★
21/32
목록
 홈  PC버전 로그인 일본어
그누앞단언어
그누뒷단언어
그외코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 2
웹유틸
회원센터
홈짱닷컴 PC버전 로그인