2017-04-02 14 views
0

私は、各行の最初の列は> 0より大きいかどうかを確認したいx一つの絶対的条件のリストをフィルタリング

[array([ -1.5768, 10.843 , 2.5462, -2.9362, 0. ]), 
array([-0.38214, 8.3909 , 2.1624 , -3.7405 , 0.  ]), 
array([-0.24811, -0.17797, 4.9068 , 0.15429, 0.  ]), 
array([-0.96511, 9.4111 , 1.7305 , -4.8629 , 0.  ]), 
array([-1.6162 , 0.80908, 8.1628 , 0.60817, 0.  ])] 

と呼ばれる配列のリストを持っています。 ([-1.5768、-0.38214、.....])

すべての行がこの条件と一致する場合、「はい」を返します。 そうでない場合は、「いいえ」を返します。

私は(そう、出力は多くのyesesかのNOEだろう「yes」または「no」の行ごとに返すことができるが、私はちょうど出力は1 yesまたはnoならないようにしたい。

for row in x: 
    if row[0] > 0: 
     print ('yes') 
    else: print('no') 

答えて

3
あなたは all()関数内でジェネレータ式を使用することができますPythonで

:numpyので

In [7]: arr = [[ -1.5768, 10.843 , 2.5462, -2.9362, 0. ], 
    ...: [-0.38214, 8.3909 , 2.1624 , -3.7405 , 0.  ], 
    ...: [-0.24811, -0.17797, 4.9068 , 0.15429, 0.  ], 
    ...: [-0.96511, 9.4111 , 1.7305 , -4.8629 , 0.  ], 
    ...: [-1.6162 , 0.80908, 8.1628 , 0.60817, 0.  ]] 

In [8]: 

In [8]: all(i[0] > 0 for i in arr) 
Out[8]: False 

In [9]: all(i[0] < 0 for i in arr) 
Out[9]: True 

あなただけの単純な比較とarray.all()属性でそれを行うことができます。

In [11]: import numpy as np 

In [12]: arr = np.array(arr) 

In [14]: (arr[:, 0] > 0).all() 
Out[14]: False 

In [15]: (arr[:, 0] < 0).all() 
Out[15]: True 
関連する問題