2013-07-22 4 views
2

저는 기후 변화와 산불에 관한 연구의 일환으로 파이썬 스크립트를 작성하고 있습니다. 이것은 초보자 질문 일지 모르지만 초보 프로그래머입니다. 필자는 기상 변수 (예 : 온도, 상대 습도 등)가 대단히 많습니다 (1). 프로그램의 한 부분에서 다른 배열 ('t0')을 'temp'와 동일하게 정의합니다. (2)입력 변수를 저장하는 Python 스크립트

이 작동
(1) `temp = N.array([[[-7.060185]],[[-17.5462963]],[[-22.43055556]],[[-16.13425926]]])` 
(2) `t0 = temp`  
(3) `t0[t0 < (-1.1)] = -1.1` 

--- 'T0'는 '온도'배열과 동일하지만, 세 번째 행 후 (3) '온도'가 새로운 값을 통해 저장되어있는 'T0.' 'temp'가 변경되지 않도록 할 수있는 방법이 있습니까? 나는 다른 사본을 저장하는 등을 시도했지만 아무것도 작동하지 않는 것처럼 보였다.

감사합니다.

+0

't0 = temp'에 의해 동일한 이름의 객체 (이 경우 numpy 배열)에 새로운 이름 인 t0을 바인딩합니다. – mg007

답변

0
t0 = temp 

실제로 복사를 수행하지 않습니다. 이름이 t0temp이 같은 배열을 참조합니다. 당신이 원할 것입니다

t0 = temp.copy() 

새로운 독립 배열을 만듭니다.

0

딥 복사본 see the documentation here을 사용하려고합니다. 딥 복사는 값이 temp에서 복사되는 고유 한 메모리 위치를 갖는 새로운 배열 t0을 생성합니다. 여러분에게 일어나고있는 일은 t0가 temp와 같은 객체라는 것을 말하면서 t0을 변경하면 temp가 동일한 객체라는 것을 명시한 이후로 변경됩니다.

관련 문제