【问题标题】:Numpy - use values of array that meet conditionNumpy - 使用满足条件的数组值
【发布时间】:2020-10-15 22:33:17
【问题描述】:

我有两个 numpy 数组,一个是布尔类型,另一个是浮点类型。我想获取 XY_coord 的行,其中一个列具有 True 行(因此 XY_coord 中的所有行在 BOOL 中具有 False-False 的所有行都被删除。我该怎么做?

BOOL = np.array([[False,  True],
           [False,  True],
           [False,  True],
           [False,  True],
           [ True,  True],
           [ True, False],
           [False, False],
           [False, False],
           [ True, False]])
       
XY_coord =    np.array([[-192.9594843 ,   78.17485294],
           [-182.2699483 ,   50.143909  ],
           [-171.5804122 ,   22.11296505],
           [ -51.11635646,  132.2664039 ],
           [ -40.42682039,  104.2354599 ],
           [ -29.73728432,   76.20451597],
           [  90.72677139,  186.3579548 ],
           [ 101.4163075 ,  158.3270108 ],
           [ 112.1058435 ,  130.2960669 ]])

我能做到:

XY_coord[out[:,0]]
XY_coord[out[:,1]]

并追加结果,但我的矩阵要大得多,所以这将是低效的。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    有很多方法可以解决这个问题。由于您只关心使用False, False 删除行,因此我会将BOOL 数组转换为行索引:keep_row = BOOL.sum(axis=1).astype('bool')。然后你可以简单地使用XY_coord[keep_row] 来获取你的过滤数组。

    【讨论】:

      【解决方案2】:

      试试这个-

      XY_coord[BOOL[:,0] | BOOL[:,1], :]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-14
        • 2019-10-07
        • 2011-05-28
        • 1970-01-01
        • 1970-01-01
        • 2019-07-15
        • 1970-01-01
        相关资源
        最近更新 更多