我是新来的numpy,在尝试筛选样本子集时遇到问题。
我有一个形状为(1000, 12)
的矩阵。也就是说,一千个样本,每个样本有12个数据列。我愿意创建两个矩阵,一个包含样本中的所有异常值,另一个包含所有非异常值的元素;生成的矩阵应具有以下形状:
norm.shape = (883, 12)
outliers.shape = (117, 12)
为了识别异常值,我使用以下条件:
cond_out = (dados[0:,RD_EVAL] > _max_rd) | (dados[0:,DUT_EVAL] > _max_dut)
也就是说,对于矩阵中的每一行,我要查找两列的值。如果其中一个值高于某个阈值,则该行被视为异常值。关键是,这个条件有一个形状(1000,)
,所以当我压缩原始矩阵时,得到一个(117,)
结果。我如何过滤矩阵,使结果是(117,12)
,也就是说,一个包含所有离群行的矩阵,但每个离群行中包含所有数据列?
允许筛选第二列中小于零的所有行:
你看,你得到了一个逻辑数组,你可以用它来选择所需的行:
也许像这样的方法会奏效?
请参阅advanced indexing上的文档。
相关问题 更多 >
编程相关推荐