假设我有一个 numpy 数组 x = [5, 2, 3, 1, 4, 5]y = ['f', 'o', 'o', 'b', 'a', 'r'] 。我想选择y中大于1小于5的元素对应于x中的元素。

我试过了

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']

但这不起作用。我该怎么做?

最佳答案

如果添加括号,则表达式有效:

>>> y[(1 < x) & (x < 5)]
array(['o', 'o', 'a'],
      dtype='|S1')

关于python - 如何在给定条件下选择数组的元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3030480/

10-12 21:11