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实现程序的单一实例用法分析
Jun 03 Python
python difflib模块示例讲解
Sep 13 Python
TensorFlow实现Batch Normalization
Mar 08 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
基于Python的Post请求数据爬取的方法详解
Jun 14 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
python打印文件的前几行或最后几行教程
Feb 13 Python
Python 忽略文件名编码的方法
Aug 01 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
Python使用socket_TCP实现小文件下载功能
Oct 09 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
python学习之panda数据分析核心支持库
May 07 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
提问的智慧(2)
2006/10/09 PHP
基于mysql的bbs设计(二)
2006/10/09 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
2016/01/25 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
2011/12/21 Javascript
向左滚动文字 js代码效果
2013/08/17 Javascript
js判读浏览器是否支持html5的canvas的代码
2013/11/18 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
vue.js系列中的vue-fontawesome使用
2018/02/10 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
Python制作CSDN免积分下载器
2015/03/10 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
详解Python做一个名片管理系统
2019/03/14 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
NumPy中的维度Axis详解
2019/11/26 Python
Win10里python3创建虚拟环境的步骤
2020/01/31 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
吉力贝官方网站:Jelly Belly
2019/03/11 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
音乐教学案例
2014/01/30 职场文书
如何写好建议书
2014/03/13 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
经典祝酒词大全
2015/08/12 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js