查找numpy数组元素的范围

时间:2012-10-03 03:54:11

标签: python arrays numpy

这是一个非常简单的问题:

我有一个94 x 155的numpy数组:

a = [1  2  20  68  210  290..
     2  33 34  55  230  340..
     .. .. ... .. ... .....]

我想计算每一行的范围。所以我在结果中获得了94个范围。我试着寻找numpy.range函数,我觉得不存在。如果这可以通过循环完成,那么它也很好。

例如:就像我们有numpy.mean()函数一样,如果我们将axis参数设置为1,那么它返回Nd数组中每一行的平均值。

2 个答案:

答案 0 :(得分:35)

我认为np.ptp可能会做你想做的事:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.ptp.html

r = np.ptp(a,axis=1)

其中r是您的范围数组。

答案 1 :(得分:4)

试试这个:

def range(x, axis=0):
    return np.max(x, axis=axis) - np.min(x, axis=axis)