2016-12-07 4 views
0

私はあなたの多くにとって簡単かもしれない質問があります。私はnumpyとpythonにかなり新しいので、もしあなたが私を助けてくれたら、それは1トンを意味するでしょう!私はnp.logical_andを得るPythonでnumpyを使用するforループのブール関数

import numpy as np 
edges= np.arange(7) 
a_edges= np.arange(5) 

for i in range(2): 
    indexes = np.logical_and((edges>=a_edges[i]),(edges<a_edges[i+1])) 

print(indexes) 
[False* True False False False False False] 

私の質問は以下の通りです。 この出力はどのように出力されますか?たとえば、すべてのi範囲(0〜2)のブール関数の両方を満たす「エッジ」の最初の配列を言う、False *(アスタリスクで示される)の結果の最初の配列ですか?

trueの場合、2番目の 'edges'の配列はブール論理をすべて満たしていませんが、真です。

たとえば、edges [1] = 1です。 i = 0の場合、edges [1]は後者のロジックを満たさないため、falseです。しかし、i = 1の場合、edges [1]は真です。だから全体的に、それは間違っているはずです......

私はこれを正しく理解していませんか?

ありがとうございます! Cece

答えて

0

ループの繰り返しごとにindexesを上書きするので、表示される内容はi=1です。 edgesは、他のすべてのための1とFalseあるときことを考えると、あなたの表現は、言い換えれば

indexes = np.logical_and(edges>=a_edges[1], edges<a_edges[2]) 

# equivalent to 
indexes = np.logical_and(edges>=1, edges<2) 

Trueになります。

+0

私はrange(2)が0または1になると考えました... –

+0

'range(2)'は '[0、1]'と等価を返します。だからまず 'i = 0'で実行し、あなたの場合は' i = 1'で再度実行し、 'indexes'を上書きします。 – Iluvatar

+0

しかし、i = 0のときにedges [1]が成立しないとき。それはどのように役割を果たすのでしょうか? –

関連する問題