240523 공부 기록

01. 컨테이너 자체를 복사하지 않게 유의하자

결론: 컨테이너 자체를 복사(포인터로 가리키는 것)하고 싶은 게 아니면 copy 메서드를 쓰자

np.array() function은 특정 리스트를 array로 변경하는데 그 과정에서 중간에 numpy.ndarray라는 컨테이너 안에 array를 넣는다.

즉 5, 7, 9 가 numpy.ndarray로 만들어졌을 때 x = 5, 7, 9 가 있는 게 아니라

x → numpy.ndarray → int 5, int 7, int 9가 있다.

즉, x 안에 리스트가 있는 게 아니라 x는 특정 리스트를 담은 컨테이너의 위치를 가리키고 (포인터) 있는 것이다.

따라서 아래와 같은 예시에서

x = np.array([5,7,9])

y = x

x[1] = -1

print(x)
print(y)

y는 x가 가리키는 array(numpy.ndarray)를 그대로 복사한 것이기 때문에 결과는