关于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数组这样的复杂数据类型是可变的。

posted @   xiaoxiao_sjtu  阅读(84)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示