2013-07-29 3 views
2

sagemath를 사용하여 Numpy 배열의 일부 값을 바꾸려고합니다. 변경되지 않은 배열도 절약하고 싶습니다.numpy 배열의 일부 값을 바꿉니다

sage: K=N sage: K array([[1, 2, 3], [4, 5, 6], [8, 9, 7]]) 

sage: K[1,2]=9 

sage: K array([[1, 2, 3], [4, 5, 9], [8, 9, 7]]) 

을하지만 문제는 여기에 있습니다 : :

sage: N=np.array([[1,2,3],[4,5,6],[8,9,7]]) 

나는 (일부 값은 교체로) 새로운 배열 K를 호출 원래 배열도 변경됩니다!

sage: N array([[1, 2, 3], [4, 5, 9], [8, 9, 7]]) 

나는 변화에만 배열 K (변경하지 않고 보존 원래 배열 N)을 위해 할 수있는 방법은?

답변

3

당신은 KN의 복사본을 만들 수 있습니다

K = N.copy() 

원래의 제형, KN 포인트에 동일한 메모리 부분의 바로 볼 수 있다는 것이다 당신이 발생하는 문제입니다.

+0

@unutbu 네 말이 맞아. 'K '가 이미 존재하고 같은 모양이라면'K [:] = A'라고 생각했습니다. 정규 사용 사례가 아니므로 제거했습니다. 그 오타를 찾아 주셔서 고마워요. – JoshAdel