2 条题解

  • 0
    @ 2026-3-26 17:43:12

    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)(A2))((A+B) \cdot (-\frac{A}{2}))

    逐步计算

    1. A+B → 写入 B
    2. A/2 → 写入 A
    3. -A → 写入 A
    4. A*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)        # 平方
    

    核心知识点

    1. out 参数 —— 原地写入
    2. 减少内存分配
    3. 提高计算效率
    • 0
      @ 2026-3-25 15:37:59

      NumPy035 题解

      题目分析

      本题要求计算角度的正弦值。

      参考代码

      import numpy as np
      angles = list(map(int, input().split()))
      print(np.sin(np.deg2rad(angles)))
      
      • 1

      信息

      ID
      86
      时间
      1000ms
      内存
      256MiB
      难度
      (无)
      标签
      (无)
      递交数
      0
      已通过
      0
      上传者