2013-07-29 156 views
2

我試圖用sagemath替換Numpy數組中的某些值。 我也想保存不變的陣列。在numpy數組中替換某些值

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

我叫k爲新的數組(有一些值替換):

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 array([[1, 2, 3], [4, 5, 9], [8, 9, 7]]) 

我如何變革只有數組K(和不改變保守的原始數組N)嗎?

回答

3

您可以KN副本:

K = N.copy() 

您遇到那就是在原來的配方,K只是說N指向同一塊內存的來看待這個問題。

+0

@unutbu你說得對。如果'K'已經存在並且形狀相同,我就會想'K [:] = A'。我只是刪除它,因爲它不是常規用例。感謝您捕獲該錯字。 – JoshAdel