2016-05-24 10 views
0

グラフをプロット(x、y)し、AからBまでの範囲のxがCより大きい場合にTrueを返すようにしたい(「y(x) > C)のコードは以下の動作しない私はそれを行うことができる方法Numpyのnp.logical_andを使った部分選択

d_for_hours=density[np.logical_and(y>C,x>=A, x <=B)].all() 

出力例:?C = 0.02およびA = 9、B = 13のため

、出力は真でなければならない

C = 0.05、A = 9、B = 13の場合、出力はFalseになります。

enter image description here

+0

所望の出力との例を提供してください。 – IanS

+0

あなたの質問を言い換えてください(「AからBまでのxの範囲がCより大きい」などとは言わないでください)[ask]を参照してください。 –

+0

@IanS例示的な出力: (C = 0.02、A = 9およびBの場合): 'd_for_hours =密度[np.logical_and(y> C、x> = A、x <= B)]。 = 13、出力はTrueでなければなりません C = 0.05、A = 9、B = 13の場合、出力はFalseになります。 – tesgoe

答えて

1

あなたはyC上記のいずれかの値を持っているかどうかを確認するためにallではなく、anyを使用します。その前に、あなたは(AB間)の条件に合致xのインデックスにyを制限する必要があります。

# create data 
x = np.array(range(20)) 
y = np.array(19 * [0] + [1]) 

(y[np.logical_and(x>=9, x<=13)] >= 0.05).any() # False 
(y[np.logical_and(x>=9, x<=20)] >= 0.05).any() # True 
関連する問題