python中的数组赋值与拷贝的区别详解


Posted in Python onNovember 26, 2019

具体的注解我已经写在了程序里面:通俗的解释了python里面的浅拷贝与深拷贝的不同,请看程序。

# -*- coding: utf-8 -*-
 
import numpy as np
import copy as cp
import matplotlib.pyplot as plt
import time
import math
 
 
fig = plt.figure()
ax = fig.add_subplot(241)
# 定义一个多维数组
x = np.array([[1, 2, 3],
       [4, 5, 6]])
print('x:{}'.format(x))
ax.plot(x)
 
ax1 = fig.add_subplot(242)
# 首先看一下浅拷贝,将x拷贝(赋值)给y
y = x
print('y:{}'.format(y))
ax1.plot(y)
 
# 改变一下y中的任意一个索引的值,可以看到x也随着y一起改变了,
# 这就是浅拷贝,原数组随着拷贝的对象的改变而改变了。
y[0, 0] = 9
print('y改变值:')
print(y)
ax2 = fig.add_subplot(243)
ax2.plot(y)
print('x的值在y改变之后:')
print(x)
ax3 = fig.add_subplot(244)
ax3.plot(x)
 
# 下面来看一下深拷贝,py里面首先要导入copy这个包,这里用cp表示。
x = np.array([[1, 2, 3],
       [4, 5, 6]])
print('\n\nx:{}'.format(x))
ax4 = fig.add_subplot(245)
ax4.plot(x)
 
y = cp.copy(x)
print('y:{}'.format(y))
ax5 = fig.add_subplot(246)
ax5.plot(y)
 
# 随意改变y的某一个索引,可以看到,y改变了,但是x还是它自己
y[0, 0] = 9
print('y改变值:')
print(y)
ax6 = fig.add_subplot(247)
ax6.plot(y)
 
print('x的值在y改变之后:')
print(x)
ax7 = fig.add_subplot(248)
ax7.plot(x)
 
plt.show()

以上这篇python中的数组赋值与拷贝的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 连连看连接算法
Nov 22 Python
Python版的文曲星猜数字游戏代码
Sep 02 Python
让Python代码更快运行的5种方法
Jun 21 Python
python函数局部变量用法实例分析
Aug 04 Python
Python中的字符串操作和编码Unicode详解
Jan 18 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
详解python中自定义超时异常的几种方法
Jul 29 Python
python爬虫中多线程的使用详解
Sep 23 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
Jan 28 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 Python
使用python切片实现二维数组复制示例
Nov 26 #Python
Python高级特性——详解多维数组切片(Slice)
Nov 26 #Python
Python实现随机取一个矩阵数组的某几行
Nov 26 #Python
Python 求数组局部最大值的实例
Nov 26 #Python
Python 实现取多维数组第n维的前几位
Nov 26 #Python
python获取array中指定元素的示例
Nov 26 #Python
Flask之pipenv虚拟环境的实现
Nov 26 #Python
You might like
php学习 函数 课件
2008/06/15 PHP
PHP中的Memcache详解
2014/04/05 PHP
PHP判断一个gif图片是否为动态图片的方法
2014/11/19 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
基于jquery实现漂亮的动态信息提示效果
2011/08/02 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
vue中渐进过渡效果实现
2016/10/27 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Vue工程模板文件 webpack打包配置方法
2017/12/26 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
微信小程序授权登录及解密unionId出错的方法
2018/09/26 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
python返回昨天日期的方法
2015/05/13 Python
bat和python批量重命名文件的实现代码
2016/05/19 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
Farfetch台湾官网:奢侈品牌时尚购物平台
2019/06/17 全球购物
关于毕业的广播稿
2014/01/10 职场文书
新年爱情寄语
2014/04/08 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
爱的教育读书笔记
2015/06/26 职场文书
Python学习之时间包使用教程详解
2022/03/21 Python
golang生成vcf通讯录格式文件详情
2022/03/25 Golang