Python

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

2846

목차

  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]

 



분류 제목
basic Python - Home (입문) - 이념 / 추천 링크
basic Python - Intro (소개) - 용도・특징
basic Python - Start (시작) - 파이썬 설치/실행/버전확인
basic Python - Syntax (구문) - 들여쓰기・변수・주석
basic Python - Comment (주석)
basic Python - Variable (변수)
basic Python - DataType (데이터타입) - 자료형
basic Python - Number (숫자)
basic Python - Casting (데이터 타입 변경) - 자료형 변환
basic Python - String (문자열) ★ ※ 색인번호 (= 인덱스) 개념.
basic Python - Boolean (참거짓)
basic Python - Operator (연산자)
basic Python - List (리스트) ★ - 변경 가능한 모음
basic Python - Tuple (투플/튜플) - 변경 불가 모음
basic Python - Set (셋/세트) - '순서(=색인)' 없고, 중복 허용 않는 데이터 모음.
1/32
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티
웹유틸
회원센터
홈짱닷컴 PC버전 로그인