【问题标题】:Why does my numpy matrix get updated before get assigned? [duplicate]为什么我的 numpy 矩阵在被分配之前会更新? [复制]
【发布时间】:2019-02-01 04:11:35
【问题描述】:

这是我的代码

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.]

为什么备份矩阵会在分配前更新?

【问题讨论】:

标签: python python-3.x numpy


【解决方案1】:

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

复制一份就解决了:

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.]

【讨论】:

    【解决方案2】:

    我认为 backup = v 不是复制它只是分配值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-30
      • 2020-10-20
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 2021-06-04
      • 2019-03-14
      • 1970-01-01
      相关资源
      最近更新 更多