Python 将通过numpy数组分配的集群转换为单独的数据集

Python 将通过numpy数组分配的集群转换为单独的数据集,python,database,numpy,cluster-analysis,Python,Database,Numpy,Cluster Analysis,我有一个非常大的数据集,我正在运行一个集群模型。集群输出一个numpy数组,其格式如下: [ 0 1 2 1 1 0 0 0 1 2 1 0 2 0 1 2 1 0 2 2 0 0 1 ... ] 我想获取原始数据集,并基于数组创建三个数据集。我该怎么办 初始数据集工作: import pandas as pd pd.options.mode.chained_assignment = None raw_data = pd.read_csv("LendingClub2012to20

我有一个非常大的数据集,我正在运行一个集群模型。集群输出一个numpy数组,其格式如下:

    [ 0 1 2 1 1 0 0 0 1 2 1 0 2 0 1 2 1 0 2 2 0 0 1 ... ]
我想获取原始数据集,并基于数组创建三个数据集。我该怎么办

初始数据集工作:

 import pandas as pd
 pd.options.mode.chained_assignment = None
 raw_data = pd.read_csv("LendingClub2012to2013.csv", low_memory = False, skiprows=[0])

 //Some cleaning done, target leakage removed, dummies created, imputation, etc.

 clean_data = raw_data.drop(text2d + leakage2d + noinfo2d + irr2d, axis = 1)

我假设您的数据集是一个numpy数组。尝试创建遮罩以从原始数据集中选择所需的元素。一些冗长的代码:

# Your original data set (2d numpy array)
orig_data = ...
# The cluster assignments output by the algorithm (1d numpy array)
cluster_assignments = ...

clusters = []
for cluster_id in xrange(3):
    mask = (cluster_assignments == cluster_id)
    clusters.append(orig_data[mask])
更简明的版本:

clusters = [orig_data[cluster_assignments == id] for id in xrange(3))]
如果您的数据集是pandas数据帧而不是numpy数组,只需将
原始数据[…]
替换为
原始数据.loc[…]


此代码的输出是一个列表
clusters
,其中每个元素都是一个数据集,其中只有一个集群的数据

.给我们看代码!!有多少个数据点和多少个群集?目前我正在使用三个群集,大小为171483 x 115。@Jgreen727-很高兴能提供帮助;如果这个答案满足您的问题,请接受!