我正在研究机器学习项目,并希望通过精确检查当前数据将数据附加到当前表中:
具体
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)
我很遗憾地提出这种愚蠢的问题,但我找不到出路。
提前感谢您的善意。
答案 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做一个新答案。