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
에 영향을 미치지 않음을 보여줍니다.
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