python - 无法在 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
不工作。
是一些语法错误吗?
解决方案
这适用于列表压缩:
arr = [arr[i]**2 if i % 2 == 0 else arr[i] for i in range(len(arr))]
但您也可以使用较短的:
arr[::2] = arr[::2]**2
推荐阅读
- python - Google Places 在 Flask 中返回一张图片
- python - 连接两列并在python的新列中打印文本
- java - org.xerial.snappy 中的 java.lang.NegativeArraySizeException。解压大文件时
- go - 以官方方式移除已发布的模块
- javascript - 使用 Jquery 克隆 HTML 元素并将单个按钮附加到每个元素
- mysql - 如何使用sql查询从多对多关系中删除重复条目
- flutter - 状态管理和实例
- nginx - 如何验证 nginx 反向代理根证书?
- node.js - CORS 在 Express 处理的备用请求上失败
- c++ - 混合内联和构造函数初始化的初始化顺序