2017-11-29 4 views
-1

私は画像処理とPythonコーディングが初めてです。 イメージ内の多数のフィーチャを検出し、それぞれのピクセル位置をリスト形式で配置しました。DBSCANアルゴリズムを使用してPythonのポイントリストを表示する方法

My_list = [(x1,y1),(x2,y2),......,(xn,yn)] 

DBSCANアルゴリズムを使用して、次の点からクラスタを作成したいと考えています。 現在、sklearn.clusterを使用してpythonのDBSCAN関数でビルドをインポートしています。 ポイントの現在のフォーマットが互換性がない場合は、どのポイントが知りたいですか?現在、現在のフォーマットに直面

エラー:

C:\Python\python.exe "F:/opencv_files/dbscan.py" 
**Traceback (most recent call last):** 
    **File "**F:/opencv_files/dbscan.py**", line 83, in <module> 
    db = DBSCAN(eps=0.5, min_samples=5).fit(X) # metric=X)** 
    **File "**C:\Python\lib\site-packages\sklearn\cluster\dbscan_.py**", line 282, in fit 
    X = check_array(X, accept_sparse='csr') 
    File "**C:\Python\lib\site-packages\sklearn\utils\validation.py**", line 441, in check_array 
    "if it contains a single sample.".format(array)) 
ValueError: Expected 2D array, got 1D array instead: 
array=[]. 
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.** 
+0

なぜあなたは試してみませんか?エラーが発生した場合、エラーは何ですか? –

答えて

0

あなたのデータはtuplelistです。この構造には、そこに長さが違うなど、狂ったことをすることを妨げるものは何もありません。さらに、これは、すべてがPythonオブジェクトとして囲まれているため、非常に遅く、メモリを非効率的に保持する方法です。

data = numpy.array(data)を呼び出して、データを効率的な多次元数値配列に変換するだけです。この配列はshapeになります。

関連する問題