赋值后跟布尔运算符

时间:2014-11-19 06:05:41

标签: python numpy boolean

我遇到过这样的语句,其中赋值(在本例中为numpy数据数组的第一列)后面跟一个布尔运算符。例如这样。

indices = data[:,1] == 1

如何在psuedocode中解释这里发生的事情,以及从这个语句生成什么类型​​的输出?

在这种情况下,接下来是这个例子:

jan_data = data[indices]

1 个答案:

答案 0 :(得分:2)

data[:,1] == 1是一个将计算为值的表达式。该值将分配给indices。使用括号,您可以将其视为indices = (data[:,1] == 1)。它不是"一个赋值后跟一个布尔运算符"。它是一个赋值,其右侧是包含布尔运算符的表达式。您可以指定a == b的结果,就像分配a + b的结果一样。

类型可以定义这种比较返回的值。在这种情况下,我怀疑data是一个numpy数组,并且比较numpy数组会给你另一个numpy布尔值数组,其中条件为真的是真,而假的是假。因此,如果data[:,1]类似于[1, 2, 3, 2, 1],则data[:,1] == 1的结果将为[True, False, False, False, True],这是将分配给indices的值。