繁体   English   中英

如何将变量的值与父变量的可能变化解除链接?

[英]How unlink variable's values from the possibles changes of a parent variable?

我需要在更改父变量时某些变量的值不发生变化。

import numpy as np
# Defining the parent variable
A = np.zeros((5,5)) 
print(A)
array([[0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.],
       [0., 0., 0., 0., 0.]])
# Asing values a the new variable
B = A[:2,:2]
print (B)
array([[0., 0.],
       [0., 0.]])
# Change the parent variable
A[:,1] = 1
print(A)
array([[0., 1., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 1., 0., 0., 0.]])
# The variable values change whit the parent variable
print(B)
array([[0., 1.],
       [0., 1.]])

我希望B的值没有变化,但是这种变化显示出与A值之间的某些联系。 我如何避免这种链接?

使用copy在内存中复制阵列。

正如J. Blackadar所说的那样,使用.copy()将是您的朋友。

通过使用复制,您将在内存中创建另一个分配,而不是使用两个变量指向同一位置。

不使用.copy():

a = 5 
b= a
b = b-2
print(a) - > 3

使用.copy():

a = 5 
b= a.copy()
b = b-2
print(a) - > 5

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM