【问题标题】:Filter a multidimensional numpy array by column按列过滤多维 numpy 数组
【发布时间】:2020-03-20 15:36:08
【问题描述】:

我有一个多维 numpy 数组,我只想要数组的每一列中的特定值。如果 vlaue 与我过滤的值不匹配,我想删除整行。代码sn-p:

array = ([4, 78.01, 65.00, 98.00],
         [5, 23.08, 87.68, 65.3],
         [6, 45.98, 56.54, 98.76],
         [7, 98.23, 26.65, 46.56])

例如第 1 列我想要 0-90 之间的数字和第 4 列我想要 70-100 之间的值。所以我理想的输出是:

 array = ([4, 78.01, 65.00, 98.00],
         [6, 45.98, 56.54, 98.76])

有什么办法吗?

【问题讨论】:

    标签: python arrays numpy multidimensional-array


    【解决方案1】:

    您需要使用bitwise operators 链接所有条件并执行布尔索引:

    array[(array[:,0] > 0) & (array[:,0] < 100) & (array[:,3] > 90) & (array[:,3] < 100)]
    
    array([[ 4.  , 78.01, 65.  , 98.  ],
           [ 6.  , 45.98, 56.54, 98.76]])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-19
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多