【问题标题】:Updating values in numpy array doesn't work with for loops on list更新 numpy 数组中的值不适用于列表上的 for 循环
【发布时间】:2016-02-13 05:58:32
【问题描述】:

假设一个二维的numpy数组如下:

A = np.ones((5,5))

现在,我想使用以下代码更新(更改)A 的所有值:

for row in A: for entry in row: entry = 999

在此之后,en A 的项为 1,即矩阵与原始矩阵相同。

但是,如果我运行这段代码,值就会改变:

for i,row in enumerate(A): for j,entry in enumerate(row): A[i][j] = 999 为什么会这样?

cell 变量是副本而不是指针吗?

【问题讨论】:

标签: python arrays list numpy


【解决方案1】:

这是因为当您重新分配entry 时,您只是在重新定义一个变量。当您第一次定义 entry 时,您正在为其分配一个 ,而不是数组中的位置。

【讨论】:

  • 谢谢!我很困惑,因为我在想 python 如何指向引用而不是值。
猜你喜欢
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
  • 2018-03-13
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 2016-07-31
相关资源
最近更新 更多