You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动修改NumPy数组?解决副本修改影响原数组的问题

NumPy数组赋值后相互影响的解决方法

你的代码:

import numpy as np

arr = np.array([1,2,3,4,5])
arrc=arr
arrc[arr<3]=3

运行结果:

>>> arrc
output : array([3,3,3,4,5])

>>> arr
output : array([3,3,3,4,5])

问题根源在于arrc=arr只是让arrc指向了arr对应的内存地址,两者是同一个数组对象的引用,并非独立的数组。因此修改其中一个变量,另一个也会同步变化。

解决方法如下:

  • 使用数组的copy()方法创建独立副本:

    import numpy as np
    
    arr = np.array([1,2,3,4,5])
    arrc = arr.copy()  # 生成完全独立的新数组
    arrc[arr<3] = 3
    

    此时修改arrc不会对arr产生任何影响。

  • 使用切片操作创建拷贝(适用于一维数组):

    arrc = arr[:]
    

    切片操作会生成原数组的新视图,一维场景下等同于创建独立拷贝,同样能避免引用关联问题。

  • 使用np.copy()函数:

    arrc = np.copy(arr)
    

    效果和数组的copy()方法一致,都是生成原数组的独立副本。

内容的提问来源于stack exchange,提问作者Kyle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:20:39