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使用opencv进行人脸识别
Apr 07 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Python动态导入模块的方法实例分析
Jun 28 Python
django主动抛出403异常的方法详解
Jan 04 Python
Python使用统计函数绘制简单图形实例代码
May 15 Python
python实现按关键字筛选日志文件
Dec 24 Python
python输出pdf文档的实例
Feb 13 Python
Django:使用filter的pk进行多值查询操作
Jul 15 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
Aug 05 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
PyCharm最新激活码(2020/10/27全网最新)
Oct 27 Python
python编程学习使用管道Pipe编写优化代码
Nov 20 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文件怎么打开 如何执行php文件
2011/12/21 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
PHP安全之register_globals的on和off的区别
2020/07/23 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
Js为表单动态添加节点内容的方法
2015/02/10 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
less简单入门(CSS 预处理语言)
2017/03/08 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
Python中文字符串截取问题
2015/06/15 Python
深入理解python多进程编程
2016/06/12 Python
Python实现简单网页图片抓取完整代码实例
2017/12/15 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python Numpy 实现交换两行和两列的方法
2019/06/26 Python
Django配置文件代码说明
2019/12/04 Python
常用的HTML5列表标签
2017/06/20 HTML / CSS
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
2015/07/24 面试题
法务专员岗位职责
2014/01/02 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
学校党支部承诺书
2015/04/30 职场文书
美容院管理规章制度
2015/08/05 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
Python 数据可视化神器Pyecharts绘制图像练习
2022/02/28 Python