首页 > 解决方案 > 无法在 numpy 数组中分配

问题描述

我想对 numpy 数组中的偶数索引值求平方并在该数组中分配相同的值。我遵循了两种方法。

1 -

for i in range(len(arr)):
        if i %2 == 0:
            arr[i] = arr[i]**2

那是有效的。

2 -

arr[i] = arr[i]**2 for i in range(len(arr)) if i % 2 == 0

 File "<ipython-input-149-30fc7ed25f1f>", line 1
    arr[i] = arr[i]**2 for i in range(len(arr)) if i % 2 == 0
                     ^
SyntaxError: invalid syntax

不工作。

是一些语法错误吗?

标签: pythonnumpy

解决方案


这适用于列表压缩:

arr = [arr[i]**2 if i % 2 == 0 else arr[i] for i in range(len(arr))]

但您也可以使用较短的:

arr[::2] = arr[::2]**2

推荐阅读