码迷,mamicode.com
首页 > 其他好文 > 详细

Numpy:复制理解 b = a、b = a.view()、d = a.copy()

时间:2019-01-23 21:40:46      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:内存地址   http   复制   矩阵   shape   img   分享图片   div   内存   

一、复制形式 1:b = a 用等号(=)赋值,内存一样,a变化 ,b也会变化

import numpy as np
a = np.arange(12)
b = a

print(b is a)  # 返回 True
b.shape = (3,4)
print ("a.shape=",a.shape)  # a.shape= (3, 4)
print (id(a))   # 2493855732640
print (id(b))   # 2493855732640

 

二、复制形式 2:c = a.view()进行复制,a和c的内存位置一样,c的值改变a也会对应改变,但c结构变化,a不会变化

import numpy as np
c = a.view()            # 将 a 复制给 c
print(c is a)          
print("c=",c)

c.shape = (2,6)             # 改变 c 的结构为2行6列,看 a 是否会变化
print("c.shape=",c.shape)
print ("a.shape=",a.shape)

c[0,4] = 1234             # 改变 矩阵c 第0行4列的值,看 a 的值是否会变化
print("c=",c)
print("a=",a)

print (id(a))    # 2493855144416
print (id(b))   # 2493855144416

结果图:

技术分享图片

 

 

三、复制形式 3:d = a.copy() ,d和a的内存地址不一样,当 d 数值改变时,a 不会改变

 

import numpy as np
d = a.copy() 
print(d is a)  # False

d[0,0] = 9999
print (d) 
print (a)

print(id(d))  # 2493855735440
print(id(a))  # 2493855732640

结果图:

技术分享图片

 

Numpy:复制理解 b = a、b = a.view()、d = a.copy()

标签:内存地址   http   复制   矩阵   shape   img   分享图片   div   内存   

原文地址:https://www.cnblogs.com/wodexk/p/10311293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!