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中__slots__用法实例
Jun 04 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
python实现比较文件内容异同
Jun 22 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
python对视频画框标记后保存的方法
Dec 07 Python
pyqt5 comboBox获得下标、文本和事件选中函数的方法
Jun 14 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
Django中F函数的使用示例代码详解
Jul 06 Python
python之json文件转xml文件案例讲解
Aug 07 Python
Python自动化实战之接口请求的实现
May 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
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
Smarty变量用法详解
2016/05/11 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
php实现微信支付之退款功能
2018/05/30 PHP
thinkPHP框架中layer.js的封装与使用方法示例
2019/01/18 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
50个比较实用jQuery代码段
2011/09/18 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
详解vue v-model
2020/08/31 Javascript
Python修改MP3文件的方法
2015/06/15 Python
Python程序中的观察者模式结构编写示例
2016/05/27 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python在文本开头插入一行的实例
2018/05/02 Python
彻彻底底地理解Python中的编码问题
2018/10/15 Python
Django Rest framework权限的详细用法
2019/07/25 Python
基于python实现学生信息管理系统
2019/11/22 Python
Python基础教程(一)——Windows搭建开发Python开发环境
2020/07/20 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
职业教育毕业生求职信
2013/11/09 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
学生未请假就回家检讨书
2014/09/22 职场文书
2014年人事部工作总结
2014/12/03 职场文书
初中作文评语
2014/12/25 职场文书
行政处罚事先告知书
2015/07/01 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书