【问题标题】:python numpy array, sub-array with satisfied condition problempython numpy数组,满足条件的子数组问题
【发布时间】:2018-09-03 18:28:55
【问题描述】:

比如我有一个数组X = np.array([1,-3,5,0,9,12])

我想做一个这样的函数。

def bigfunction(X)
    if X<0:
        return 99
    if X=>0 and X<=10
        return 100
    if X>10
        return 101

它还返回一个数组。在这种情况下[100,99,100,100,100,101] 很明显,这段代码是行不通的。 我不能循环执行它是非常重要的。我想知道是否已经在 numpy 中实现了代码来解决这个问题。

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    你可以试试np.select:

    conds = [X < 0, X <= 10]
    
    choices = [99, 100]
    
    np.select(conds, choices, default=101)
    

    这将返回:

    array([100,  99, 100, 100, 100, 101])
    

    【讨论】:

      【解决方案2】:
      Y = np.zeros(X.shape, dtype=int)
      Y[X<0] = 99
      Y[(X>= 0) & (X<10)] = 100
      Y[X>10] = 101
      

      Y 将是您返回的数组。

      【讨论】:

      • 你也可以使用np.zeros_like(X, dtype=np.int)
      猜你喜欢
      • 1970-01-01
      • 2021-02-15
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-07
      • 1970-01-01
      • 2022-08-04
      • 2019-11-14
      相关资源
      最近更新 更多