给定相同长度的布尔向量,最快的方法来屏蔽2D numpy数组的行?

时间:2018-07-09 20:32:14

标签: python arrays numpy data-science

我有一个形状为1 x N的numpy布尔向量,以及一个形状为160 x N的2d数组。对2d数组的列进行子集设置的快速方法是什么,以便对于布尔向量的每个索引具有True在其中保留该列,并且对于其中包含False的布尔向量的每个索引,该列是否被丢弃?

如果调用矢量掩码和数组功能,我发现以下操作太慢了:np.array([f[mask] for f in features])

有更好的方法吗?我觉得一定有,对吧?

1 个答案:

答案 0 :(得分:0)

您可以尝试一下,

    new_array = 2d_array[:,bool_array==True]

因此,根据轴,您可以选择要删除的轴。如果得到一维阵列,则可以对其进行整形并获得所需的阵列。这种方法也会更快。