python - 如何使用 for 循环重新分配数组中的元素

python - how to reassign element in array with for loop

我有一个 numpy 浮点数数组,我想使用 for 循环为它重新分配一个不同的值,但是 PyCharm 说没有使用新的变量分配。

如果有,请说:

for i in array:
    i = i * 5

它会说我是一个未使用的变量。我做错了什么?

您需要为数组元素赋值。否则你的数组将保持不变。有几种方法。

以您当前的尝试为起点,您可以使用 enumerate。给定输入 array:

for idx, val in enumerate(array):
    array[idx] = val * 5

但这并没有利用 NumPy 矢量化。您可以简单地使用:

array *= 5

应该是:

for i in range(len(array)):
    array[i] = array[i] * 5

您所做的是创建一个临时变量 "i",它只存在于每次循环迭代中,用列表中的元素值初始化,然后删除。

一个更 pythonic 的方法是:

array = [i*5 for i in array]