python - RuntimeWarning:与 np.where() 相除时遇到无效值
问题描述
我不明白为什么我仍然有这个错误:
“RuntimeWarning:在 true_divide 中遇到除以零”
我申请的应该防止它np.where
。请注意,除以零是正确处理的,因为我最终得到 anp.nan
而不是 a -inf
:
当然我可以人为地忽略警告,但我想了解......
import pandas as pd
import numpy as np
series_raw = pd.Series([0, float('nan'), 1,4,6,-1], [0,1,2,3,4,5])
print(series_raw)
# Ignore the divide by zero errors
# np.seterr(divide='ignore', invalid='ignore')
x = series_raw.values
values = np.where(np.logical_or(x == 0, np.isnan(x)), np.nan, 10 /x)
# Re-activate the divide by zero errors
# np.seterr(divide='warn', invalid='warn')
series_modified = pd.Series(values, series_raw.index)
print(series_modified)
输出:
0 0.0
1 NaN
2 1.0
3 4.0
4 6.0
5 -1.0
dtype: float64
0 NaN
1 NaN
2 10.000000
3 2.500000
4 1.666667
5 -10.000000
dtype: float64
RuntimeWarning:在 true_divide 中遇到除以零
解决方案
推荐阅读
- python - 如何在python中比较日期?我有月份日期年份格式并想与当前日期(7 天内)进行比较
- machine-learning - 神经网络 - 具有空输入的额外类的分类器
- sql - Flask 和 sqlite3 - 在“插入”sql 命令可以工作之前,是否需要用数据填充表?
- r - 有没有办法在 igraph R 中为输入和输出单独加权边缘?
- node.js - 使用条带向后端发出 http 请求时遇到问题
- bash - 无法在 macOS Catalina 10.15 上通过 mktemp 转换为临时文件
- firebase - 当我尝试显示当前 Firebase 用户的电子邮件时,为什么会得到 null?
- mongoose - 仅在超测的一项测试中连接 ECONNREFUSED 127.0.0.1:80 错误
- flutter - 如何使非固定大小的父行/列填满整个空间
- java - Javadoc 未生成 -- doc 文件夹