NumPy 전체 복사

Muhammad Maisam Abbas 2023년1월30일
  1. Python에서copy.deepcopy()함수를 사용한 NumPy 전체 복사
  2. Python에서 사용자 정의 접근 방식을 사용한 NumPy Deep Copy
NumPy 전체 복사

이 자습서에서는 Python에서 NumPy 배열을 딥 복사하는 방법을 소개합니다.

Python에서copy.deepcopy()함수를 사용한 NumPy 전체 복사

Python에는 얕은 복사본과 깊은 복사본이라는 두 가지 유형의 복사본이 있습니다. 단순 복사는 복사 된 배열에 원래 배열에 대한 참조 만 포함됨을 의미합니다. 이는 원래 배열의 모든 변경 사항이 복사 된 배열 내부에 반영된다는 것을 의미합니다. 반면에 전체 복사는 원본 배열의 각 요소를 복사 된 배열에 복사하는 것을 의미합니다. 이러한 유형의 복사에서는 복사 된 배열 내의 각 요소에 새 메모리 위치가 할당됩니다. 즉, 원래 배열의 변경 사항은 복사 된 배열의 내용을 변경하지 않습니다.

copy모듈 내부의 deepcopy()함수는 목록을 딥 복사하는 데 사용되지만 Python의 배열에서도 잘 작동합니다. copy.deepcopy()함수는 배열을 입력 인수로 취하고 배열의 전체 사본을 리턴합니다. 다음 코드 예제는 Python에서copy.deepcopy()함수를 사용하여 NumPy 배열을 딥 복사하는 방법을 보여줍니다.

import numpy as np
import copy

array = np.array([1, 2, 3, 4])
array2 = copy.deepcopy(array)
array[0] = array[0] + 1
print(array)
print(array2)

출력:

[2 2 3 4]
[1 2 3 4]

위의 코드에서copy.deepcopy()함수를 사용하여array2내부에 NumPy 배열array를 복사했습니다. 그런 다음array내부의 요소를 수정했습니다. 출력은 NumPy 배열array내의 값을 변경해도 NumPy 배열array2에 영향을 미치지 않음을 보여줍니다.

Python에서 사용자 정의 접근 방식을 사용한 NumPy Deep Copy

NumPy 배열을 딥 복사하는 또 다른 방법은 전체 배열을 반복하고 그 안의 각 요소를 복사하는 것입니다. 다음 코드 예제를 참조하십시오.

import numpy as np

array = np.array([1, 2, 3, 4])
array2 = np.array([x for x in array])
array[1] = 1
print(array)
print(array2)

출력:

[1 1 3 4]
[1 2 3 4]

위의 코드에서 우리는array안의 각 요소를 반복하여 NumPy 배열array2내부의 NumPy 배열array를 깊게 복사했습니다. 그런 다음array내부의 요소를 수정했습니다. 출력은 NumPy 배열array내의 값을 변경해도 NumPy 배열array2에 영향을 미치지 않음을 보여줍니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn