python - 为什么我的 numpy 矩阵在分配之前得到更新?

标签 python python-3.x numpy

<分区>

这是我的代码

import numpy as np
v = np.zeros(4)
backup = np.zeros(4)

for i in range(3):
   backup = v
   v[0] = 1
   print(backup)

我的输出是:

[1. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]

但我预计:

[0. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]

为什么备份矩阵在分配之前得到更新?

最佳答案

你并不是真的在做备份:你只是在做另一个引用。

复制解决:

import numpy as np
v = np.zeros(4)
backup = np.zeros(4)

for i in range(3):
    backup = v.copy()
    v[0] = 1
    print(backup)

[0. 0. 0. 0.]
[1. 0. 0. 0.]
[1. 0. 0. 0.]

关于python - 为什么我的 numpy 矩阵在分配之前得到更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54472773/

相关文章:

python - 将元组作为值附加到字典中的现有键

python - 正则表达式仅从随机文本中搜索网站名称

python - 如果我颠倒 zip 列表的顺序,为什么我会得到两个不同的词典

python - numpy 数组列出转换问题

python - 在python中计算表面拟合后3D偏差的均方根

python - 列和行范围内的 Numpy 数组操作

python - 组合的组合

python - 如何将工作字典排序程序转换为 Python 3.5

linux - python subprocess.run 如果你重新定向 stdout/stderr,它会错误退出而不是工作

python - 使用PyInstaller编译后是否还需要安装python项目依赖?