Cluster computing 如何在python中为点列表使用DBSCAN算法

Cluster computing 如何在python中为点列表使用DBSCAN算法,cluster-computing,dbscan,Cluster Computing,Dbscan,我不熟悉图像处理和python编码。 我在一幅图像中检测到许多特征,并将它们各自的像素位置以列表格式放置 My_list = [(x1,y1),(x2,y2),......,(xn,yn)] 我想使用DBSCAN算法从以下几点形成集群。 目前正在使用sklearn.cluster导入python的内置DBSCAN函数。 如果点的当前格式不兼容,您想知道哪个是兼容的吗 当前格式当前面临的错误: C:\Python\python.exe "F:/opencv_files/dbscan.py"

我不熟悉图像处理和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.**
C:\Python\Python.exe“F:/opencv\u文件/dbscan.py”
**回溯(最近一次呼叫最后一次):**
**文件“**F:/opencv_files/dbscan.py**”,第83行,在
db=DBSCAN(eps=0.5,最小样本数=5)。拟合(X)#公制=X)**
**文件“**C:\Python\lib\site packages\sklearn\cluster\dbscan_uuzy.py**”,第282行,以fit格式
X=检查数组(X,接受
文件“**C:\Python\lib\site packages\sklearn\utils\validation.py**”,第441行,在check\u数组中
“如果它包含单个样本。”。格式(数组))
ValueError:应为2D数组,而应为1D数组:
数组=[]。
使用数组重塑数据。如果数据具有单个特征或数组,则重塑(-1,1)。如果数据包含单个样本,则重塑(1,-1)**

您的数据是
元组的
列表。在这个结构中没有任何东西可以阻止你用它做疯狂的事情,比如在里面有不同的长度。另外,这是一种非常缓慢且内存效率低下的数据保存方式,因为所有内容都作为Python对象装箱


只需调用
data=numpy.array(data)
即可将数据转换为高效的多维数字数组。这个数组将有一个
形状

为什么不试试呢?如果出现任何错误,错误是什么?