2010-02-16 54 views
2

有了這個代碼:的Python:選擇功能

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] 

不過爲什麼我有在零開始而不是結束了嗎?提前致謝。

+0

你的'select'函數來自哪裏? – MattH 2010-02-16 12:47:00

+0

'select'不是Python中的內建函數,因此您必須提供更多關於上下文的詳細信息以供任何人協助。即定義的「select」函數在哪裏? 'x'和'r_'的類型是什麼? – 2010-02-16 12:47:08

+0

什麼是select()函數?我只能找到這個:http://docs.python.org/library/select.html – 2010-02-16 12:47:59

回答

5

你似乎在使用numpy。

documentation for numpy.select()

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

...

默認:插在輸出時的所有條件評價爲False的元素。

由於您的條件x > 7x >=4,輸出陣列將具有從x+10x >= 4元素和從xx > 7。當兩個條件都是假的時候,即當x < 4時,你會得到默認,這是0.所以你在開始時得到3個零。

你沒有得到最終的任何零,因爲條件至少有一個爲真(都是真實的,事實)。

+0

我只有一個條件。對不起,我是盲人。 – kame 2010-02-16 12:49:40