【问题标题】:Referring to arrays in a for-loop在 for 循环中引用数组
【发布时间】:2018-03-01 20:49:40
【问题描述】:

假设我有 3 个 Numpy 数组,其中包含具有以下名称的浮点数:一二三。

是否可以通过以下方式在for循环中引用它们:

list=one two three

for arr in list:
    arr=arr[2,1]+1

上面的例子显然不起作用,但我想知道是否有办法做到这一点?

【问题讨论】:

  • arr 似乎是一个二维数组,array[2,1] 是一个浮点数。你到底想用这个浮动做什么?用一个值替换整个数组?仅替换索引处的值 [2,1]?
  • 嗨。我想替换索引 [2,1] 处的值。
  • 有两个问题 - 如何迭代数组列表或元组(或任何类型的对象),以及如何更改这些对象之一。 arr=... 不会原地更改 arr。它重新分配变量arr
  • 是的,这就是我真正想要的。 @EricDuminil 回答是第一步,但我希望这个简单的例子可以推广到更复杂的案例。显然没有!

标签: python python-3.x numpy for-loop


【解决方案1】:

您需要指定保存值的位置:

arr[2,1] = arr[2,1] + 1

或者只是:

arr[2,1] += 1

所以整个代码变成:

import numpy as np
one = np.arange(6).reshape(3, 2)
two = np.arange(10).reshape(5, 2)
arrays = [one, two]
for arr in arrays:
    arr[2, 1] += 1

【讨论】:

    【解决方案2】:

    我认为如果您将列表变量设为列表,它会起作用:

    list=[one, two, three]
    for arr in list:
        arr=arr[2,1]+1
    

    【讨论】:

    • 我试过了,不幸的是它没有对数组进行任何更改。
    猜你喜欢
    • 2020-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多