我遇到过这样的语句,其中赋值(在本例中为numpy数据数组的第一列)后面跟一个布尔运算符。例如这样。
indices = data[:,1] == 1
如何在psuedocode中解释这里发生的事情,以及从这个语句生成什么类型的输出?
在这种情况下,接下来是这个例子:
jan_data = data[indices]
答案 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
的值。