如何解决Python脚本无法在计算机上使用特定文件
我正在使用Python 3.7并正在学习已发布的代码。在我第一次编写代码的尝试中,它没有错误地运行,这意味着所有必需的库(NumPy,Pandas,scikit-learn)都应该由我正确安装。当我更改源文件以处理不同的数据时,它停止工作。但是,它可以在另一台计算机上工作。我使用所有应用程序更新了系统,并尝试缩短了导入的文件,但没有做任何更改。两台计算机上的输入文件相同。
这是带有警告的错误:
/usr/lib64/python3.7/site-packages/sklearn/externals/six.py:7: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
import imp
/usr/lib64/python3.7/site-packages/sklearn/utils/__init__.py:4: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
from collections import Sequence
/usr/lib64/python3.7/site-packages/sklearn/model_selection/_split.py:18: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
from collections import Iterable
/usr/lib64/python3.7/site-packages/sklearn/model_selection/_search.py:16: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
from collections import Mapping,namedtuple,defaultdict,Sequence
/usr/lib64/python3.7/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.
from numpy.core.umath_tests import inner1d
Traceback (most recent call last):
File "algorithm2.py",line 26,in <module>
classifier.fit(X_train,y_train)
File "/usr/lib64/python3.7/site-packages/sklearn/ensemble/forest.py",line 248,in fit
y = check_array(y,accept_sparse='csc',ensure_2d=False,dtype=None)
File "/usr/lib64/python3.7/site-packages/sklearn/utils/validation.py",line 453,in check_array
_assert_all_finite(array)
File "/usr/lib64/python3.7/site-packages/sklearn/utils/validation.py",line 44,in _assert_all_finite
" or a value too large for %r." % X.dtype)
ValueError: Input contains NaN,infinity or a value too large for dtype('float64').
这是代码:
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
data=open("./data3.csv")
headernames=data.readline()
dataset=pd.read_csv("data3.csv")
dataset.head()
X = dataset.iloc[:,:-2].values
y = dataset.iloc[:,-1].values
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.30)
from sklearn.ensemble import RandomForestClassifier
classifier = RandomForestClassifier(n_estimators = 50)
classifier.fit(X_train,y_train)
y_pred = classifier.predict(X_test)
from sklearn.metrics import classification_report,confusion_matrix,accuracy_score
result = confusion_matrix(y_test,y_pred)
print("Confusion Matrix:")
print(result)
result1 = classification_report(y_test,y_pred)
print("Classification Report:",)
print (result1)
result2 = accuracy_score(y_test,y_pred)
print("Accuracy:",result2)
解决方法
您是否在代码中使用 imp 模块?像import imp
一样?
如果是这样,您可以尝试使用import importlib
。
我还看到与收藏集相关的警告。
尝试检查提供的答案in this SO answer
除此之外,您还有ValueError: Input contains NaN,infinity or a value too large for dtype('float64').
错误
您可能需要再次查看输入文件。输入似乎有问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。