jupyter中在循环里设置的变量会改变循环外的数组

问题遇到的现象和发生背景

jupyter中在循环里设置的变量会改变循环外的数组

问题相关代码,请勿粘贴截图

t = np.array(range(12)).reshape(3,4).astype(float)
t[1,2:]=np.nan
print(t)
for i in range(t.shape[1]):
a = t[:,i]
a[2]=0
print(t)

运行结果及报错内容

[[ 0. 1. 2. 3.]
[ 4. 5. nan nan]
[ 8. 9. 10. 11.]]
[[ 0. 1. 2. 3.]
[ 4. 5. nan nan]
[ 0. 0. 0. 0.]]

我的解答思路和尝试过的方法

应该是循环里第一行将a和t联系到一起了,然后改变a的值同时改变了t。

我想要达到的结果

我想知道为啥改变a就会改变t呢?

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^a是t的视图,都是对同一块内存的引用