【问题标题】:Fastest way to mask rows of a 2D numpy array given a boolean vector of same length?给定相同长度的布尔向量,屏蔽 2D numpy 数组行的最快方法?
【发布时间】:2018-07-09 20:32:13
【问题描述】:

我有一个形状为 1 x N 的 numpy 布尔向量和一个形状为 160 x N 的二维数组。什么是对二维数组的列进行子集化的快速方法,这样对于具有 True 的布尔向量的每个索引在其中,该列被保留,并且对于其中包含 False 的布尔向量的每个索引,该列被丢弃?

如果您调用向量掩码和数组特征,我发现以下内容太慢了:np.array([f[mask] for f in features])

有没有更好的方法?我觉得应该有吧?

【问题讨论】:

  • features[:,mask.ravel()]features[:,mask[0]]?

标签: python arrays numpy data-science


【解决方案1】:

你可以试试这个,

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

因此,您可以根据轴选择要删除的轴。如果你得到一个一维数组,那么你可以重塑它并获得所需的数组。这种方法也会更快。

【讨论】:

    猜你喜欢
    • 2021-05-06
    • 1970-01-01
    • 2017-08-19
    • 2021-05-02
    • 1970-01-01
    • 2021-11-11
    • 2015-12-29
    相关资源
    最近更新 更多