python中的数组赋值与拷贝的区别详解

yipeiwu_com7年前Python基础

具体的注解我已经写在了程序里面:通俗的解释了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脚本获取操作系统版本信息

Python脚本获取操作系统版本信息

查看系统版本信息是一件家常便饭的事情,有时候需要将版本信息录入到资产管理系统中,如果每次手动的去查询这些信息再录入系统那么是一件令人呢头疼的事情,如果采用脚本去完成这件事情,那么情况就有...

python操作excel让工作自动化

某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入、删除列、拷贝、求和,所以给了4天的时间要完成。...

python 实现屏幕录制示例

PIL 即pollow 的安装命令如下: pip install pillow 其中cv2的安装是下面这条命令 pip install opencv-python 代码实现:...

Django多数据库的实现过程详解

有些项目可能涉及到使用多个数据库的情况,方法很简单。 1.在settings中设定DATABASE 比如要使用两个数据库: DATABASES = { 'default': {...

python使用tkinter库实现五子棋游戏

python使用tkinter库实现五子棋游戏

本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 一、运行截图: 二、代码 # 用数组定义一个棋盘,棋盘大小为 15×15 # 数组索引代表...