2 条题解

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

    NUMPY028 题解:特殊运算结果

    题目

    分析以下表达式的结果:

    np.array(0) / np.array(0)
    np.array(0) // np.array(0)
    np.array([np.nan]).astype(int).astype(float)
    

    解题思路

    理解 NumPy 中的特殊数值运算规则。

    代码

    import numpy as np
    print(np.array(0) / np.array(0))        # nan
    print(np.array(0) // np.array(0))       # 0
    print(np.array([np.nan]).astype(int).astype(float))  # [nan]
    

    详解

    1. 0 / 0 → nan

    np.array(0) / np.array(0)
    
    • 数学上 0/0 是未定义的
    • NumPy 返回 nan(Not a Number)

    2. 0 // 0 → 0

    np.array(0) // np.array(0)
    
    • 整数除法返回 0
    • 注意:这是 NumPy 的特殊处理

    3. nan 的类型转换

    np.array([np.nan]).astype(int).astype(float)
    
    • nanint → 变成 -2147483648(最大负整数)
    • intfloat → 变成 -2147483648.0

    警告

    # 这些操作会产生警告
    np.array(0) / np.array(0)  # RuntimeWarning: divide by zero
    np.array(0) // np.array(0) # RuntimeWarning: divide by zero
    

    核心知识点

    1. 0/0 在 NumPy 中返回 nan
    2. nan 转换为 int 会丢失信息
    3. 使用 np.nan 处理缺失值
    • 0
      @ 2026-3-25 13:22:28

      NumPy028 题解

      题目分析

      本题要求计算特殊表达式的结果。

      参考代码

      import numpy as np
      print(np.array(0) / np.array(0))
      print(np.array(0) // np.array(0))
      print(np.array([np.nan]).astype(int).astype(float))
      
      • 1

      信息

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