【问题标题】:Replace some values in a numpy array替换numpy数组中的一些值
【发布时间】:2013-07-29 02:12:50
【问题描述】:

我正在尝试使用 sagemath 替换 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的情况下保留)?

【问题讨论】:

    标签: python arrays numpy sage


    【解决方案1】:

    您可以将K 复制为N

    K = N.copy()
    

    您遇到的问题是,在您的原始公式中,K 只是N 指向的同一块内存的视图。

    【讨论】:

    • @unutbu 你是对的。我在想K[:] = A 如果K 已经存在并且形状相同。我刚刚删除了它,因为它不是常规用例。感谢您发现那个错字。
    猜你喜欢
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    • 2011-12-21
    • 1970-01-01
    • 2019-09-26
    • 2012-05-07
    • 1970-01-01
    相关资源
    最近更新 更多