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]
我有一个 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]