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

如何修改新数组且不改动其初始关联的原NumPy数组?

解决NumPy数组修改同步问题

在NumPy中,img_2 = img_1这种赋值操作并不是创建新数组,而是让img_2成为img_1的引用——两个变量指向同一块内存空间,所以修改img_2时,img_1必然同步变化。要让img_1保持初始状态,你需要为img_1创建一个独立的副本,常用方法有三种:

方法1:使用数组的copy()方法

这是最直观的方式,会创建数组的深拷贝:

import numpy as np

img_1 = np.arange(25).reshape(5,5)
img_2 = img_1.copy()  # 创建独立副本

locs = np.where(img_2 >= 0)
img_2[locs] = [65000]

# 此时img_1仍为初始的5x5数组,img_2是修改后的数组

方法2:使用np.copy()函数

和copy()方法效果一致,属于函数式的调用方式:

img_2 = np.copy(img_1)

方法3:利用切片创建浅拷贝

对于纯数值的多维数组,切片操作会创建浅拷贝,足够满足当前需求:

img_2 = img_1[:]

以上三种方式都能让img_2成为独立于img_1的新数组,修改img_2不会影响img_1的初始状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 20:25:20