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