2016-03-31 14 views
-1

次の例を拡張して、boolの配列を返すにはどうすればよいですか?C#相当のNumpy Where

たとえば、次のようになります。それぞれの条件

意図した結果を満たすすべての3つのアレイのインデックスである

int[] data = { 1, 2, 5, 6 }; 
int[] data1 = { 2, 4, 6, 1}; 
int[] data2 = { 3, 2, 3, 0}; 
var results = Enumerable.Range(0, data.Length).Where(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1); 

得られた結果= { 2 }{False, False, True, False} - >どのようにこの結果フォーム。

現在使用されている方法(冗長きちんとしていない):

for(int j = 0; j < h1.Length; j++) 
      { 
       if (h1[j] < 0.0 && h2[j] > 0.0 && h3[j] > threshold == true) 
       { 
        result[j] = true; 
       } 
       else 
       { 
        result[j] = false; 
       } 
      } 

参考:代わりにWhere()[1]

答えて

3

結果を投影するSelect()を使用して、コレクションをフィルタリングする:

var results = Enumerable.Range(0, data.Length).Select(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1);