numpy массив python, подмассив с выполненной проблемой условия - PullRequest
0 голосов
/ 03 сентября 2018

Например, у меня есть массив 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 голосов
/ 03 сентября 2018
Y = np.zeros(X.shape, dtype=int)
Y[X<0] = 99
Y[(X>= 0) & (X<10)] = 100
Y[X>10] = 101

Где Y будет вашим возвращенным массивом.

0 голосов
/ 03 сентября 2018

Вы можете попробовать np.select:

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

choices = [99, 100]

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

Это вернет:

array([100,  99, 100, 100, 100, 101])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...