2017-09-24 16 views
0

次のコードでこのエラーが発生するのはなぜですか?私はSpyder 3.1.4を使用していますが、これはIPythonコンソールで実行しています。TypeError:length-1配列のみをPythonスカラーに変換できます

list_stock = [] 
for key,value in data_dict.iteritems(): 
    list_stock.append(value["salary"]) 
sorted_list_stock = sorted(list_stock) 
scaler = MinMaxScaler() 
weights = np.array(sorted_list_stock) 
print weights 
rescaled_weights = scaler.fit_transform(float(weights)) 
print rescaled_weights 

編集:完全なエラー:

[ '477' '6615' '63744' ...、 'NaNの' 'のNaN' 'のNaN'] トレースバック(最新の呼び出しの最後):

ファイル1行目 runfile( 'C:/ Users/ptillotson/Documents/Pythonスクリプト/ ud120-projects-master/k_means/k_means_cluster.py'、wdir = 'C:/ Users/ptillotson /ドキュメント/ Pythonスクリプト/ ud120-projects-master/k_means ')

ファイル "C:\ ProgramData \ Anaconda2 \ lib \ site-packag (ファイル名、ネームスペース)

ファイル "C:¥ProgramData¥Anaconda2¥lib¥site-packages¥spyder¥utils¥site¥speser¥utils¥site¥sitecustomize.py" sitecustomize.py "execfileを入力、ライン87、 のexec(コンパイル(scripttext、ファイル名、 ')のexec'、グロブ、LOC)

ファイル" C:/ユーザー/ ptillotson /ドキュメント/ Pythonスクリプト/ ud120-projects- rescaled_weightsマスタ/ k_means/k_means_cluster.py」、ライン89、= scaler.fit_transform(フロート(重み))

TypeError例外:長さだけ-1配列はPythonのスカラーに変換することができる

+0

として直接重みを使用してください。 'float(weight)'をしないでください。 –

+2

答えをより詳細に更新してください。どのようなエラーが発生しているのかを説明し(質問本体で)、どの出力を期待しているのかを説明します。 – Soviut

+0

完全なエラーで編集を追加しました。私は$ 200,000.00のminmaxscalerの値を見つけようとしています。さまざまな給料があります。いくつかの給料は不明です。それらは "NaN"に置き換えられます。 –

答えて

0
list_stock.append(value["salary"]) 

float(value["salary"])が必要です。また

、フレーズに良いことがlist_stock = [float(v['salary']) for v in data_dict.values()]

+0

これを行うと、次のエラーが発生します。ValueError:入力にNaN、無限大またはdtype( 'float64')には大きすぎる値が含まれています –

関連する問題