Python

python에서 '...'의 의미🤔

pushpush 2024. 1. 9. 16:47

numpy를 쓰다 보면  '...'라는 문자가 간간히 보입니다.

 

처음에는 코드 생략이겠거니 하고 넘어갔지만 그게 아니더라구요

grad[0] = dW

grad[0][...] = dW

이 둘의 차이는 위의 코드의 경우 얕은 복사(shallow copy)가 이뤄지고,

아리의 코드는 깊은 복사(deep copy)가 이뤄진다는 차이를 갖고있습니다.

 

이해를 돕기 위해 예시를 보겠습니다.

python에서 id()를 통해 현재 확인하고자 하는 변수의 메모리 주소를 확인할 수 있습니다.

만약 a[...] = b를 통해 b의 값을 a에 대입할 경우, 깊은 복사가 이루어지기 때문에 a와 b의 메모리 주소는 다르지만 값이 같은 것을 볼 수 있습니다.

 

하지만 a = b를 통해 대입을 할 경우, 얕은 복사가 이뤄져 같은 메모리 주소를 가리키는 모습을 볼 수 있습니다.

이렇게 될 경우 a의 값을 바꿀 경우 b의 값도 바뀌게 됩니다.