2 条题解
-
0
NUMPY035 题解:原地计算
题目
计算
((A+B)*(-A/2))并原地操作(不复制)。解题思路
使用 NumPy 的
out参数将结果直接写入指定数组。代码
import numpy as np A = np.ones(3) * 1 B = np.ones(3) * 2 np.add(A, B, out=B) np.divide(A, 2, out=A) np.negative(A, out=A) np.multiply(A, B, out=A) print(A)原地操作详解
等式分析
逐步计算
A+B→ 写入 BA/2→ 写入 A-A→ 写入 AA*B→ 写入 A
使用 out 参数的好处
# 不使用 out(会创建新数组) result = A + B # 使用 out(原地操作,节省内存) np.add(A, B, out=B)原地操作的函数
np.add(a, b, out=c) # 加 np.subtract(a, b, out=c) # 减 np.multiply(a, b, out=c) # 乘 np.divide(a, b, out=c) # 除 np.negative(a, out=a) # 取反 np.square(a, out=a) # 平方核心知识点
out参数 —— 原地写入- 减少内存分配
- 提高计算效率
- 1
信息
- ID
- 86
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者