【问题标题】:Python boolean arrays confusion in jupyter IDEjupyter IDE中的Python布尔数组混淆
【发布时间】:2021-10-21 19:48:56
【问题描述】:

我是布尔数组的新手,发现这些语句令人困惑

import numpy as np

a = np.arange(5)

数组a的输出是:array([0, 1, 2, 3, 4]) 但是当我写下这个

b = a[True, True, False, False, False]

并使用

打印数组 b
print(b)

输出是:

[]

据我所知,我想将一些元素从数组 a 转移到数组 b,但是为什么 b 是空的? 这段代码发生了什么?

【问题讨论】:

    标签: python arrays python-3.x numpy boolean


    【解决方案1】:

    尝试嵌套括号:

    a = np.arange(5)
    b = a[[True, True, False, False, False]]
    print(b)
    

    输出:

    [0 1]
    

    【讨论】:

    • 谢谢,这行得通。但我想知道为什么会这样。为什么这里需要嵌套?
    【解决方案2】:

    您可以使用np.where() fromnumpy,如下所示:

    import numpy as np
    
    a = np.arange(5,10)
    
    print(a)
    
    b = a[np.where([True, True, False, False, False])]
    
    print(b)
    

    输出:

    [5 6 7 8 9]
    [5, 6]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-14
      • 2011-09-19
      • 1970-01-01
      • 2013-11-28
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多