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中的__new__与__init__魔术方法理解笔记
Nov 08 Python
python查询mysql中文乱码问题
Nov 09 Python
用python实现面向对像的ASP程序实例
Nov 10 Python
Python教程之全局变量用法
Jun 27 Python
Python设计模式之状态模式原理与用法详解
Jan 15 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
Python 线程池用法简单示例
Oct 02 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
python实现数学模型(插值、拟合和微分方程)
Nov 13 Python
pycharm + django跨域无提示的解决方法
Dec 06 Python
利用python进行数据加载
Jun 20 Python
Python之基础函数案例详解
Aug 30 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php 远程图片保存到本地的函数类
2008/12/08 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
2016/06/13 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
jQuery 选择器理解
2010/03/16 Javascript
ExtJS实现文件下载的方法实例
2013/11/09 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
Javascript实现单例模式
2016/01/24 Javascript
Bootstrap响应式侧边栏改进版
2016/09/17 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
详解Vue Elememt-UI构建管理后台
2018/02/27 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
Vue实现页面添加水印功能
2019/11/09 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
python 实现rolling和apply函数的向下取值操作
2020/06/08 Python
Python发送邮件实现基础解析
2020/08/14 Python
canvas实现圆形进度条动画的示例代码
2017/12/26 HTML / CSS
营销主管自我评价怎么写
2013/09/19 职场文书
应届大学生的推荐信
2013/11/20 职场文书
船舶工程技术专业求职信
2014/08/07 职场文书
2014年技术员工作总结
2014/11/18 职场文书
酒会邀请函
2015/01/31 职场文书
出国留学导师推荐信
2015/03/26 职场文书
办公室日常管理制度
2015/08/04 职场文书
python实现学员管理系统(面向对象版)
2022/06/05 Python
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android