python numpy数组,满足条件问题的子数组

时间:2018-09-03 18:28:56

标签: python numpy

例如,我有一个数组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中实现了代码才能解决此问题。

2 个答案:

答案 0 :(得分:1)

您可以尝试np.select

conds = [X < 0, X <= 10]

choices = [99, 100]

np.select(conds, choices, default=101)

这将返回:

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

答案 1 :(得分:1)

include('includes/functions/parent_functions.php');

Y = np.zeros(X.shape, dtype=int) Y[X<0] = 99 Y[(X>= 0) & (X<10)] = 100 Y[X>10] = 101 将是您返回的数组。