2 条题解
-
0
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→ nannp.array(0) / np.array(0)- 数学上 0/0 是未定义的
- NumPy 返回
nan(Not a Number)
2.
0 // 0→ 0np.array(0) // np.array(0)- 整数除法返回 0
- 注意:这是 NumPy 的特殊处理
3. nan 的类型转换
np.array([np.nan]).astype(int).astype(float)nan→int→ 变成-2147483648(最大负整数)int→float→ 变成-2147483648.0
警告
# 这些操作会产生警告 np.array(0) / np.array(0) # RuntimeWarning: divide by zero np.array(0) // np.array(0) # RuntimeWarning: divide by zero核心知识点
- 0/0 在 NumPy 中返回 nan
- nan 转换为 int 会丢失信息
- 使用
np.nan处理缺失值
- 1
信息
- ID
- 75
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者