c# 相当于 Numpy Where
c# equivalent of Numpy Where
如何将以下示例扩展为 return 布尔数组:
例如;
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;
}
}
参考:[1]
而不是 Where()
来过滤集合,使用 Select()
来投影结果:
var results = Enumerable.Range(0, data.Length).Select(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1);
如何将以下示例扩展为 return 布尔数组:
例如;
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;
}
}
参考:[1]
而不是 Where()
来过滤集合,使用 Select()
来投影结果:
var results = Enumerable.Range(0, data.Length).Select(i => data[i] > 2 && data1[i] < 7 && data2[i] > 1);