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 相关文章推荐
详细介绍Ruby中的正则表达式
Apr 10 Python
python实现文件路径和url相互转换的方法
Jul 06 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Anaconda下安装mysql-python的包实例
Jun 11 Python
python 获取url中的参数列表实例
Dec 18 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
Jan 06 Python
pymysql的简单封装代码实例
Jan 08 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
python输出国际象棋棋盘的实例分享
Nov 26 Python
python3字符串输出常见面试题总结
Dec 01 Python
解决Pytorch中关于model.eval的问题
May 22 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
Symfony学习十分钟入门经典教程
2016/02/03 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
2017/08/17 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
php strftime函数的详细用法
2018/06/21 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
2012/12/17 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
vue实现直播间点赞飘心效果的示例代码
2019/09/20 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
Angular+ionic实现折叠展开效果的示例代码
2020/07/29 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
Python中特殊函数集锦
2015/07/27 Python
Python实现简单登录验证
2016/04/13 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
利用python画出折线图
2018/07/26 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
python写入文件自动换行问题的方法
2019/07/05 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Python Mock模块原理及使用方法详解
2020/07/07 Python
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
环境建议书
2015/02/04 职场文书
导游词400字
2015/02/13 职场文书