-1
저는 파이썬 초보자이고 배열 유형의 차이를 이해하고 있습니다.파이썬 목록과 NumPy 목록 출력
이 예에서는 최종적으로 출력이 다르다는 것을 이해할 수 없었습니다. 두 코드의 코드가 다르게 작동하는 이유는 무엇입니까?
저는 파이썬 초보자이고 배열 유형의 차이를 이해하고 있습니다.파이썬 목록과 NumPy 목록 출력
이 예에서는 최종적으로 출력이 다르다는 것을 이해할 수 없었습니다. 두 코드의 코드가 다르게 작동하는 이유는 무엇입니까?
numpy
는 목록 (배열)를 처리하는 방식에 파이썬 다르다. numpy
은 데이터 버퍼를 손상시키지 않고 새로운 복사본을 생성하려고 시도하지만 파이썬은 새로운 객체를 생성합니다. 당신이 할 경우 :
>>> a = list('1234')
>>> a
['1', '2', '3', '4']
>>> b = a[1:3]
>>> b[0] = 1
>>> b
[1, '3']
>>> a
['1', '2', '3', '4']
이 b
을 수정 b = a[1:3]
이 새로운 객체를 생성하기 때문에, a
영향을 미치지 않았다. 그러나 당신이 numpy
에 : d
가 사용 c
것과 같은 버퍼에 보기 때문에
>>> import numpy as np
>>> c = np.array(a)
>>> c
array(['1', '2', '3', '4'])
>>> d = c[1:3]
>>> d
array(['2', '3'])
>>> d[0] = 1
>>> c
array(['1', '1', '3', '4'])
이 d
을 수정, 는 변화 c
했다.
(Source)