【问题标题】:How to create a Boolean Mask which preserves a column?如何创建保留列的布尔掩码?
【发布时间】:2021-05-17 22:58:48
【问题描述】:

例如: 说我有

x = np.array[['positive','a'],['negative','b'],['positive','c'], ['negative','d']]

我想要一个具有值的新数组

v = [['positive','a'], ['positive','c']]

如何做到这一点?谢谢你的时间!

【问题讨论】:

  • 如果您发布了有效的代码和明确的问题陈述,或者更好的是,实际尝试了一些东西,那就太好了。
  • @n404 也许你也应该检查 numpy 函数....np.array 是一个函数

标签: python arrays numpy boolean mask


【解决方案1】:

更正语法:

In [359]: x = np.array([['positive','a'],['negative','b'],['positive','c'], ['ne
     ...: gative','d']])
In [360]: x
Out[360]: 
array([['positive', 'a'],
       ['negative', 'b'],
       ['positive', 'c'],
       ['negative', 'd']], dtype='<U8')

只需选择带有索引的“行”:

In [361]: x[[0,2],:]
Out[361]: 
array([['positive', 'a'],
       ['positive', 'c']], dtype='<U8')

等效的布尔掩码:

In [362]: mask=np.zeros(4,bool)
In [363]: mask[[0,2]]=True
In [364]: mask
Out[364]: array([ True, False,  True, False])
In [365]: x[mask,:]
Out[365]: 
array([['positive', 'a'],
       ['positive', 'c']], dtype='<U8')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多