首页 文章

Numpy重塑问题

提问于
浏览
1
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] .

我该如何解决?

1 回答

  • 0

    如果您只想将数组从 (x, 1) 重新整形为 (1, x) ,则可以使用 np.transposenumpy.ndarray.T 函数:

    x_train = x_train.T
    y_train = np.transpose(y_train)
    

    两者都达到了相同的效果 .

    编辑:这仅适用于一维数组 . 对高维数组使用reshape .

    如果您没有给我们显示错误发生在哪一行的完整回溯,我们无法更详细地帮助您 .

相关问题