Numpy阵列发生意外变化

用户名
SL = np.zeros((N+1))
DDB, SOYD, MACRS, MEX, book_value = SL, SL, SL, SL, SL
print("MEX: ",MEX)
book_value[0] = inv_fci
DDB[0] = 0
print("MEX: ",MEX)
SL[1:m+1] = inv_fci/m
print("MEX: ",MEX)

因此,我制作了一个numpy数组SL,它基本上是(N + 1)个零,然后将其分配给其他数组:DDB,SOYD,MACRS等。奇怪的是,在对SL做完某些操作之后,所有数组完全按照SL更改的方式更改。没有被触及的MEX变得与SL完全一样,即具有m个条目的数组,都等于inv_fci(预定的双变量)。经过一些测试,当我更改SL时,甚至其他阵列也在更改。

为什么在更改SL时这些数组会更改?

伊斯梅尔·帕迪利亚(Ismael Padilla)
DDB, SOYD, MACRS, MEX, book_value = SL, SL, SL, SL, SL

这使得DDBSOYDMACRSMEXbook_value指向同一个对象。如果修改了该对象,则所有变量都将指向同一修改后的对象。

一种可能的解决方案是创建SL的副本,然后为每个变量分配一个不同的副本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章