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

python numpy数组,满足条件的子数组问题,python,numpy,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 def bigfunction(X) 如果X0和X10 返回101 它还返回一个数组。在这种情况下[100,99100101] 显然

例如,我有一个数组
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
def bigfunction(X)
如果X0和X10
返回101
它还返回一个数组。在这种情况下
[100,99100101]
显然,这段代码将不起作用。 我不能在一个循环中做这件事,这很重要。我想知道是否有在numpy中实现的代码可以解决此问题。

您可以尝试:

Y=np.zero(X.shape,dtype=int)
Y[X=0)和(X10]=101

其中
Y
将是您返回的数组。

您也可以使用
np.zero\u类似(X,dtype=np.int)
conds = [X < 0, X <= 10]

choices = [99, 100]

np.select(conds, choices, default=101)
array([100,  99, 100, 100, 100, 101])
Y = np.zeros(X.shape, dtype=int)
Y[X<0] = 99
Y[(X>= 0) & (X<10)] = 100
Y[X>10] = 101