我正在将python用于机器学习问题。我拥有的数据以csv格式如下,每行具有以下格式:<class-label>, feature_1, feature_2,....
一个例子是:
1,0,0,3,4,5
3,0,0,9,0,0
5,0,0,2,2,2
1,0,1,5,0,0
5,0,1,3,0,0
5,1,0,0,4,0
我需要根据第一列拆分数据。在给定的情况下,我应该有一个包含3个条目的字典,每个条目都有一个特征矩阵的值。当然,我可以进行迭代,但是我正在寻找更多的单线执行此操作。
编辑:
因此答案应如下所示:
1 => [ [0,0,3,4,5],
[0,1,5,0,0]]
3 => [ [0,0,9,0,0]]
5 => [ [0,0,2,2,2],
[0,1,3,0,0],
[1,0,0,4,0]]
最佳答案
使用numpy工具:
tab=np.loadtxt('data.txt',delimiter=',',dtype=int)
labels,data=tab[:,0],tab[:,1:]
dic= {label: data[labels==label] for label in np.unique(labels)}
给:
{1: array([[0, 0, 3, 4, 5],
[0, 1, 5, 0, 0]]),
3: array([[0, 0, 9, 0, 0]]),
5: array([[0, 0, 2, 2, 2],
[0, 1, 3, 0, 0],
[1, 0, 0, 4, 0]])}
关于python - 根据第一列值将数据拆分为多个矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32912545/