2 条题解

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

    NUMPY029 题解:远离零取整

    题目

    如何将浮点数组向远离零的方向取整?

    解题思路

    利用 np.ceil()(向上取整)和 np.floor()(向下取整),结合符号判断。

    代码

    import numpy as np
    Z = np.random.uniform(-10, +10, 10)
    print(np.copysign(np.ceil(np.abs(Z)), Z))
    

    代码详解

    1. np.random.uniform(-10, 10, 10) —— 创建 10 个 [-10, 10) 的随机数
    2. np.abs(Z) —— 取绝对值
    3. np.ceil(...) —— 向上取整
    4. np.copysign(x, y) —— 将 x 的值复制符号到 y

    示例

    原始:     [-2.3, -5.7, 3.1, 8.9, -0.2]
    绝对值:   [ 2.3,  5.7, 3.1, 8.9,  0.2]
    向上取整: [ 3.0,  6.0, 4.0, 9.0,  1.0]
    复制符号: [-3.0, -6.0, 4.0, 9.0, -1.0]  ← 结果
    

    其他方法

    # 方法2:使用 np.where
    np.where(Z > 0, np.ceil(Z), np.floor(Z))
    
    # 方法3:使用 np.trunc + np.sign
    np.trunc(Z) + np.sign(Z - np.trunc(Z))
    

    核心知识点

    1. np.ceil() —— 向上取整
    2. np.floor() —— 向下取整
    3. np.copysign() —— 复制符号
    • 0
      @ 2026-3-25 14:47:15

      NumPy029 题解

      题目分析

      本题要求将浮点数向外取整(远离零的方向)。

      参考代码

      import numpy as np
      n = int(input())
      np.random.seed(42)
      Z = np.random.uniform(-10, 10, n)
      print(np.copysign(np.ceil(np.abs(Z)), Z))
      
      • 1

      信息

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