2 条题解

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

    NUMPY036 题解:取整数部分

    题目

    使用 4 种不同方法提取随机数组的整数部分。

    解题思路

    NumPy 提供了多种取整方法,每种方法有不同的取整规则。

    代码

    import numpy as np
    Z = np.random.uniform(0, 10, 10)
    print(Z - Z % 1)       # 方法1:取模
    print(Z // 1)          # 方法2:整数除法
    print(np.floor(Z))     # 方法3:向下取整
    print(Z.astype(int))   # 方法4:类型转换
    print(np.trunc(Z))     # 方法5:截断
    

    代码详解

    假设 Z = [3.7, 2.1, 8.9, 4.5, 1.2, 6.8, 0.3, 9.1, 5.6, 7.4]

    方法 公式/函数 结果
    取模 Z - Z % 1 [3, 2, 8, 4, 1, 6, 0, 9, 5, 7]
    整除 Z // 1
    floor np.floor(Z) [3., 2., 8., 4., 1., 6., 0., 9., 5., 7.]
    int转换 Z.astype(int) [3, 2, 8, 4, 1, 6, 0, 9, 5, 7]
    trunc np.trunc(Z) [3., 2., 8., 4., 1., 6., 0., 9., 5., 7.]

    负数情况

    Z = [-3.7, -2.1, -8.9, -4.5]
    取模:   [-3, -2, -8, -4]
    整除:   [-4, -3, -9, -5]
    floor:  [-4, -3, -9, -5]
    截断:   [-3, -2, -8, -4]
    

    核心知识点

    1. Z % 1 —— 取小数部分
    2. // —— 整数除法
    3. np.floor() —— 向下取整
    4. astype(int) —— 类型转换(向零取整)
    5. np.trunc() —— 截断小数部分
    • 0
      @ 2026-3-25 15:38:04

      NumPy036 题解

      题目分析

      本题要求计算两个向量的点积。

      参考代码

      import numpy as np
      A = np.array(list(map(int, input().split())))
      B = np.array(list(map(int, input().split())))
      print(np.dot(A, B))
      
      • 1

      信息

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