输入包含无穷大或对于 dtype('float64') 错误来说太大的值
Posted
技术标签:
【中文标题】输入包含无穷大或对于 dtype(\'float64\') 错误来说太大的值【英文标题】:Input contains infinity or a value too large for dtype('float64') error输入包含无穷大或对于 dtype('float64') 错误来说太大的值 【发布时间】:2021-04-18 13:42:04 【问题描述】:输入包含无穷大或对于 dtype('float64') 过大的值在我运行此代码时出现错误。我该如何解决?
from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload
import pandas as pd
cdd = CryptoDataDownload()
data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")
for col in data.columns:
if col not in ['date', 'unix']:
data[col]=data[col].pct_change()
data.dropna(inplace=True)
data[col] = preprocessing.scale(data[col].values)
print(data.head())
【问题讨论】:
【参考方案1】:尝试运行它。您需要用您选择的数字替换 Nan 和 Inf 值
import numpy as np
from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload
import pandas as pd
cdd = CryptoDataDownload()
data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")
for col in data.columns:
if col not in ['date', 'unix']:
data[col]=data[col].pct_change()
data.dropna(inplace=True)
print(data[col].tolist())
# replace inf or nan with a number (for my example zero is selected)
data[col] = [0 if np.isnan(x) or np.isinf(x) else x for x in data[col]]
data[col] = preprocessing.scale(data[col].values)
print(data.head())
【讨论】:
【参考方案2】:您的数据具有无限价值,请使用以下命令将其删除:
data[col] =data[col][data[col] != float('inf') ]
from sklearn import preprocessing
from tensortrade.data.cdd import CryptoDataDownload
import pandas as pd
cdd = CryptoDataDownload()
data = cdd.fetch("Bitstamp", "USD", "BTC", "1h")
for col in data.columns:
if col not in ['date', 'unix']:
data[col]=data[col].pct_change()
data.dropna(inplace=True)
data[col] =data[col][data[col] != float('inf') ]
data[col] = preprocessing.scale(data[col].values)
print(data.head())
【讨论】:
我认为合并答案是最好的答案,因为我们不知道他是否要删除或替换 inf以上是关于输入包含无穷大或对于 dtype('float64') 错误来说太大的值的主要内容,如果未能解决你的问题,请参考以下文章
GridSearchCV():ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值
SVM ValueError:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值
StandardScaler -ValueError:输入包含 NaN、无穷大或对于 dtype('float64')来说太大的值
Jupiter Notebook:输入包含 NaN、无穷大或对于 dtype('float64') 来说太大的值