NumPy ndarray 的三元运算符?

24

NumPy是否有三元运算符?例如,在R中有一个向量化的if-else函数:

> ifelse(1:10 < 3,"a","b")
 [1] "a" "a" "b" "b" "b" "b" "b" "b" "b" "b"

NumPy里有等价的东西吗?

1个回答

42
你正在寻找 numpy.where()函数:
>>> print numpy.where(numpy.arange(10) < 3, 'a', 'b')
['a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b']

NumPy还有一个泛化版(将0、1、2等映射到值,而不仅仅是True和False):numpy.choose()


就这样了,谢谢。选择似乎很复杂,但我会在某个地方找到它的用途。 - hatmatrix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接