1. ホーム
  2. python

ValueError: 2 次元配列を期待したが、代わりに 1 次元配列を得た。解決方法

2022-02-20 15:40:01
<パス
  1. (a) knn最近傍分類の学習において、元データはパラメータQ1,Q2によりtype=T1,type=T2に分けられる。

  2. 実行中

knn = neighbors.KNeighborsClassifier()
knn.fit(df[['Q1','Q2']],df['type']) 
knn.predict([35,26])


  1. エラーを報告する

ValueError: 2D 配列を期待したが、代わりに 1D 配列を得た。
array=[35 26] です。
データが単一素性の場合は array.reshape(-1, 1) を、単一サンプルを含む場合は array.reshape(1, -1) を使って、データの形状を変更します。

  1. を試した結果
np.array([35,26]).reshape(1,-1)


その結果は

その後、1次元配列を2次元配列に変更するには、外側の[]を追加するだけで、リシェイプが不要になることを学習してください。

  1. 最終的なコード
knn = neighbors.KNeighborsClassifier()   
knn.fit(df[['Q1','Q2']],df['type'])   
knn.predict([[35,26]])


  1. 結果を実行する