python定义数组并赋值_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,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)
数组全部赋值为1plt.show()
以上这篇python中的数组赋值与拷贝的区别详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持我们。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论