【问题标题】:Ternary operator for NumPy ndarray?NumPy ndarray 的三元运算符?
【发布时间】:2011-12-12 17:50:55
【问题描述】:

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

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

在 NumPy 中有什么等价的吗?

【问题讨论】:

    标签: python arrays numpy multidimensional-array


    【解决方案1】:

    您正在寻找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()

    【讨论】:

    • 就是这样。谢谢你。选择似乎很复杂,但我会在某个地方找到它的用途。
    猜你喜欢
    • 1970-01-01
    • 2021-10-06
    • 2021-08-01
    • 2018-09-10
    • 2018-09-26
    相关资源
    最近更新 更多