python如何通过仔细检查现有数据来附加新数据

时间:2016-07-18 15:42:53

标签: python

我正在研究机器学习项目,并希望通过精确检查当前数据将数据附加到当前表中:

具体

X, y = form_results(results)
// X & y are numpy arrays 

当前数据集如下所示:

x[0]  x[1]   y
 1     4     1
 2     5     3
 3     6     4

我怎么能把它变成下面的集合:

x[0]  x[1]   y
 1     4     1
 1     5     0
 1     6     0
 2     4     0
 2     5     3
 2     6     0
 3     4     0
 3     5     0
 3     6     4

解释:列出x [0]&的所有可能性匹配。 x [1]并且如果原始表中不存在匹配,则使用x [0]&的新匹配追加一行。 x [1]并使y的值为0。

当前粗糙但是://但这不起作用

new_data = []
for x in enumerate(X), y:
    for i, j in x:
       if x[i] x[j]not in x:
        new_data.append(x[0], x[1], y)

X = numpy.vstack(X, new_data)

我很遗憾地提出这种愚蠢的问题,但我找不到出路。

提前感谢您的善意。

1 个答案:

答案 0 :(得分:1)

x = [[1, 2, 3], [4, 5, 6]]
y = [1, 3, 4]
new_data = []
for i, x0 in enumerate(x[0]):
    for j, x1 in enumerate(x[1]):
        #print x0, x1, y[i] if i == j else 0
        new_data.append([x0, x1, y[i] if i == j else 0])

这使得一个数组的行与你想要的一样。

我不知道numpy,所以我无法帮助你处理与此相关的任何事情。有人应该把我写的和编辑它或者用numpy做一个新答案。