计算框中的元素

时间:2012-03-30 19:24:53

标签: python numpy

我有一部分代码可以计算给定范围的数据集的x,y和z列中的内容。我想要它做的只是计算x,y和z中的那些值。基本上我要做的是让代码计算3D框中的值的数量。如何修改以下内容?提前致谢

Sx = ((min <= X) & (X <= max)).sum()    #count what is in x range
Sy = ((min <= Y) & (Y <= max)).sum()    #count what is in y range
Sz = ((min <= Z) & (Z <= max)).sum()    #count what is in z range

2 个答案:

答案 0 :(得分:2)

一种方法是将&所有三个条件放在一起。

或者,由于minmax对于所有三个维度都相同,因此您可以使用np.minimum()np.maximum(),如下所示:

((min < np.minimum(X, Y, Z)) & (np.maximum(X, Y, Z) < max)).sum()

P.S。我建议您调用minmax其他内容,以便它们不会隐藏the builtins

答案 1 :(得分:2)

仍然不确定这是否真的是你想要的,但无论如何:

count = ((min < X) & (X < max) & 
         (min < Y) & (Y < max) &
         (min < Z) & (Z < max)).sum()