import numpy as np
import matplotlib.pyplot as plt
from matplotlib import style
from sklearn.linear_model import LinearRegression
from sklearn import preprocessing, cross_validation, svm
df = pd.read_csv('table.csv')
print (df.head())
df = df[['Price', 'Asset']]
x = np.array(df.Price)
y = np.array(df.Asset)
x_train, x_test, y_train, y_test = cross_validation.train_test_split(
x, y, test_size=0.2)
x_train = np.pad(x, [(0,0)], mode='constant')
x_train.reshape((23,1))
y_train = np.pad(y, [(0,0)], mode ='constant')
y_train.reshape((23,1))
np.reshape(-1, 1)
错误:
runfile('C:/Users/HP/Documents/linear.py', wdir='C:/Users/HP/Documents')
Price Asset
0 87.585859 191
1 87.839996 232
2 87.309998 245
3 88.629997 445
4 88.379997 393
C:\Users\HP\Anaconda3\lib\site-packages\sklearn\utils\validation.py:386:
DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
DeprecationWarning)
Traceback (most recent call last):
File "<ipython-input-124-030ffa933525>", line 1, in <module>
runfile('C:/Users/HP/Documents/linear.py', wdir='C:/Users/HP/Documents')
File "C:\Users\HP\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
execfile(filename, namespace)
File "C:\Users\HP\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/HP/Documents/linear.py", line 38, in <module>
clf.fit(x_train, y_train)
File "C:\Users\HP\Anaconda3\lib\site-packages\sklearn\linear_model\base.py", line 427, in fit
y_numeric=True, multi_output=True)
File "C:\Users\HP\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 520, in check_X_y
check_consistent_length(X, y)
File "C:\Users\HP\Anaconda3\lib\site-packages\sklearn\utils\validation.py", line 176, in check_consistent_length
"%s" % str(uniques))
ValueError: Found arrays with inconsistent numbers of samples: [ 1 23]
我的DataFrame大小:23,2。
我将x_train和y_train填充到[23,1]因为我得到了这个初始错误 ValueError :找到了样本数不一致的数组:[1 18]。 填充后的错误消息: ValueError :找到样本数不一致的数组:[1 23]。
然后我尝试重塑它并仍然收到错误消息: ValueError :找到样本数不一致的数组:[1 23]。
我该如何解决这个问题?
答案 0 :(得分:0)
如果您只想重塑从大小(x, 1)
到(1, x)
的数组,可以使用np.transpose
或numpy.ndarray.T
函数:
x_train = x_train.T
y_train = np.transpose(y_train)
两者都达到了相同的效果。
编辑:这仅适用于一维数组。对高维数组使用reshape。
如果您没有向我们提供错误发生在哪一行的完整追溯,我们无法为您提供更详细的帮助。