关于python中对np.array数据进行元素操作的讨论(形参与实参)
最近发现了python中,如果将np.array(ndarray)类型的数据作为实参,传递给形参时,实参和形参会同时改变。
例如下面的代码:
import numpy as np
num=np.array([[1,2],[3,4]])
def test(a):
a[0,1] = 9
print(a)
test(num)
print(num)
输出结果:
[[1 9]
[3 4]]
[[1 9]
[3 4]]
会发现实参num和形参a都发生了改变。这就很奇怪了,超出了我的认知。
调研了一下,发现是【可变数据类型】和【不可变数据类型】的关系
在 Python 中,数据类型可以分为可变(Mutable)和不可变(Immutable)两种类型。可变数据类型指的是对象在创建后可以修改其内容,而不改变其标识(在内存中的位置)。不可变数据类型则是指对象一旦创建后,其内容就不能再被修改,如果需要修改,只能创建一个新的对象。
需要注意的是,Python 中的整数和字符串等简单数据类型是不可变的,而像列表、字典和NumPy数组这样的复杂数据类型是可变的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」