web-dev-qa-db-ja.com

TypeError:0-d配列の繰り返しPython

非常に基本的な最近傍計算を記述しようとしています。私は基本的にtがどのように見えるかを見たいのですが、このタイプのエラーが発生しました。関数にtを返すように要求したとき、「」と言いました。リストするように頼んだとき、「TypeError:0-d配列の繰り返しPython」

これを修正するにはどうすればよいですか?

...

t = np.array(map(lambda v:
             map(lambda w: distance(v, w, L), x_train.values),
             x_test.values)) 

...

完全なトレース: enter image description here

5
Anna Huang

問題は np.arrayはイテレータを取りません。以下のように、最初にlistに変換する必要があります。

t = np.array(list(map(lambda v: map(lambda w: distance(v, w, L),
                      x_train.values), x_test.values)))

numpy.arrayドキュメント 、必須パラメーターは次のとおりである必要があります。

配列、配列インターフェイスを公開するオブジェクト、配列メソッドが配列を返すオブジェクト、または(ネストされた)シーケンス。

または、 numpy.fromiter そして、忘れずにdtypeを指定してください。 dtype=float

6
jpp