在我们进入细节之前,我已经在网站上搜索过任何类似的问题,但其中大部分都不适合我。
这是我尝试做的事情:
my_array = np.zeros([5,5])
for i in range(4):
temp = my_array[:]
temp +=1
所以我需要在my_array上进行尝试和错误而不更改它。这是一个简化版本,只有一些关键点。但我做的试验改变了my_array和temp。
到目前为止,此网站上的解决方案都使用了[:]或.copy。我尝试了两种方法,但它仍然会影响my_array。
感谢任何帮助!
答案 0 :(得分:0)
您需要执行深度复制
import copy
temp = copy.deepcopy(my_array)
在此之后,对temp的任何更改都不会反映在my_array
应该这样做。
答案 1 :(得分:0)
copy
有效:
my_array = np.zeros([5,5])
for i in range(4):
temp = my_array.copy()
temp +=1
print(temp)
#[[ 1. 1. 1. 1. 1.]
# [ 1. 1. 1. 1. 1.]
# [ 1. 1. 1. 1. 1.]
# [ 1. 1. 1. 1. 1.]
# [ 1. 1. 1. 1. 1.]]
print(my_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.]]