转换numpy矩阵数据集

时间:2017-01-01 14:01:27

标签: python numpy matrix

我在python中有一个带有8列的2D矩阵。 这8列保存两个不同实体的记录,比如A和B,每个实体有4列。我的示例数据如下:

╔══════╦═════════╦══════╦═════════╗
║ A_ID ║ arrtibA ║ B_ID ║ attribB ║
╠══════╬═════════╬══════╬═════════╣
║    1 ║ val     ║    1 ║ val     ║
║    1 ║ val     ║    1 ║ val     ║
║    1 ║ val     ║    2 ║ val     ║
║    1 ║ val     ║    2 ║ val     ║
║    2 ║ val     ║    3 ║ val     ║
║    2 ║ val     ║    3 ║ val     ║
║    2 ║ val     ║    4 ║ val     ║
║    3 ║ val     ║    5 ║ val     ║
║    3 ║ val     ║    5 ║ val     ║
╚══════╩═════════╩══════╩═════════╝

我希望将其转换为这种形式:

╔══════╦═════════╦══════╦═════════╗
║ A_ID ║ arrtibA ║ B_ID ║ attribB ║
╠══════╬═════════╬══════╬═════════╣
║    1 ║ val     ║    1 ║ val     ║
║    1 ║ val     ║    1 ║ val     ║
║    2 ║ val     ║    2 ║ val     ║
║    2 ║ val     ║    2 ║ val     ║
║    3 ║ val     ║    3 ║ val     ║
╚══════╩═════════╩══════╩═════════╝

简单来说,根据各自的ID对齐实体A和实体B的属性。可以丢弃找不到匹配的行。我有大约28,000多行,其中A_ID的范围是17到230,B_ID的范围是17到305.但是一旦完成对齐,两个实体的ID低于231的行在彼此前面对齐,并且休息从实体B的231到305被丢弃。

1 个答案:

答案 0 :(得分:0)

您可以尝试:

data = np.delete(data, np.where(data[:,0]!=data[:,2])[0], 0)