2013-07-29 118 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