假設我有一個numpy數組x = [5, 2, 3, 1, 4, 5]
,y = ['f', 'o', 'o', 'b', 'a', 'r']
。我想選擇在y
對應於x
元素的元素大於1且小於5numpy數組,如何選擇滿足多個條件的索引?
我試圖
x = array([5, 2, 3, 1, 4, 5])
y = array(['f','o','o','b','a','r'])
output = y[x > 1 & x < 5] # desired output is ['o','o','a']
但這不起作用。我將如何做到這一點?
這很好.. vecMask = 1
Ralf
2016-11-03 17:08:18
omg這太奇怪了 – 2017-05-27 16:54:19
@JennyYueJin:這是因爲優先。 (按位)'&'具有比'<' and '>'更高的優先級,其優先級高於(邏輯)'和'。 x> 1和x <5'先不等式,然後邏輯連接; 'x> 1&x <5'計算'1'和('in)'x'中的位的連接點,然後是不等式。 (x> 1)&(x <5)'迫使不平等先評估,所有的操作都按照預定的順序進行,結果都是明確的。 [請參閱文檔](https://docs.python.org/3/reference/expressions.html#operator-precedence) – calavicci 2017-11-16 17:58:41