2017-03-04 3 views
-1

저는 파이썬 초보자이고 배열 유형의 차이를 이해하고 있습니다.파이썬 목록과 NumPy 목록 출력

이 예에서는 최종적으로 출력이 다르다는 것을 이해할 수 없었습니다. 두 코드의 코드가 다르게 작동하는 이유는 무엇입니까?

Code Example

답변

0

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)