[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🛠 기타/Data & AI

[파이썬] Numpy 배열의 참조 (reshape를 통해 생성한 배열과 값을 공유하는 이유?)

inu 2020. 7. 9. 10:45
반응형
a = np.arange(10)
b = a.reshape(2,5)
c = a[0:3]
a[0] = -999
print(a)
print(b)
print(c)
print(id(a))
print(id(b))
print(id(c))
=결과=
[-999    1    2    3    4    5    6    7    8    9]
[[-999    1    2    3    4]
 [   5    6    7    8    9]]
[-999    1    2]
1859077923104
1859077926544
1859077951696
  • Numpy 배열을 다루는 도중 이해가 안되는 부분이 있었다.
  • a의 값을 변경하면 reshape 혹은 슬라이싱을 통해서 만들어준 Numpy의 배열의 값도 변경된다.
  • 하지만 내가 의문을 가졌던 것은 이 셋의 id가 모두 다름에도 값변경이 공유된다는 점이 의아했다.

Numpy 배열 : View

  • View는 일종의 원본의 참조로서, reshape 혹은 슬라이싱을 통해 생성된다.
  • view() 함수를 통해서도 생성이 가능하다.
arr = np.array([1,2,3])
new = arr.view()
new[0] = 3
print(arr) # array([3, 2, 3])
print(new) # array([3, 2, 3])

(구글링을 해도 잘 나오지 않아 이정도로 이해하고 정리하지만 혹시 더 정확히 알고 계신 분이 있다면 댓글로 좀 알려주세요..)

반응형

'🛠 기타 > Data & AI' 카테고리의 다른 글

[파이썬] Numpy 배열의 연산  (0) 2020.07.09
[파이썬] Numpy 배열의 확장 및 삭제  (1) 2020.07.09
[파이썬] Numpy Fancy Indexing  (0) 2020.07.09
[파이썬] Numpy 기초  (0) 2020.07.08
딥러닝 기초  (0) 2020.06.13