Python: выберите функцию - PullRequest
       8

Python: выберите функцию

2 голосов
/ 16 февраля 2010

С этим кодом:

import scipy
from scipy import *
x = r_[1:15]  
print x 
a = select([x > 7, x >= 4],[x,x+10])  
print a

Я получаю этот ответ:

[ 1  2  3  4  5  6  7  8  9 10 11 12 13 14]
[ 0  0  0 14 15 16 17  8  9 10 11 12 13 14]

Но почему у меня нули в начале, а не в конце? Заранее спасибо.

1 Ответ

5 голосов
/ 16 февраля 2010

Вы похоже используете numpy.

Из документации для numpy.select () :

numpy.select(condlist, choicelist, default=0)

...

по умолчанию : элемент, вставляемый в вывод, когда все условия оцениваются как False.

Поскольку вашими условиями являются x > 7 и x >=4, выходной массив будет содержать элементы с x+10 при x >= 4 и с x при x > 7. Когда оба условия ложны, то есть, когда x < 4, вы получите по умолчанию , что равно 0. Таким образом, вы получите 3 нуля в начале.

В конце концов вы не получите нулей, потому что хотя бы одно из условий выполнено (на самом деле оба истинны).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...