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错误处理详解
Sep 28 Python
详解Python中的__new__()方法的使用
Apr 09 Python
实例讲解Python编程中@property装饰器的用法
Jun 20 Python
Python教程之全局变量用法
Jun 27 Python
Python socket实现的简单通信功能示例
Aug 21 Python
Python 脚本获取ES 存储容量的实例
Dec 27 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
Python之数据序列化(json、pickle、shelve)详解
Aug 30 Python
详解Python 循环嵌套
Jul 09 Python
python开发入门——列表生成式
Sep 03 Python
Python3+RIDE+RobotFramework自动化测试框架搭建过程详解
Sep 23 Python
python实现ROA算子边缘检测算法
Apr 05 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
php简单日历函数
2015/10/28 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
FCK调用方法..
2006/12/21 Javascript
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
jquery实现在网页指定区域显示自定义右键菜单效果
2015/08/25 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
vue: WebStorm设置快速编译运行的方法
2018/10/18 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
JavaScript判断数组类型的方法
2019/10/23 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
Python的Django框架中forms表单类的使用方法详解
2016/06/21 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
python opencv如何实现图片绘制
2020/01/19 Python
python 线性回归分析模型检验标准--拟合优度详解
2020/02/24 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
修理厂厂长岗位职责
2014/01/30 职场文书
网络技术专业求职信
2014/02/18 职场文书
走进敬老院活动总结
2014/07/10 职场文书
授权委托书范文
2014/07/31 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
新闻发布会新闻稿
2015/07/17 职场文书