查找numpy数组元素的范围

kha*_*han 21 python arrays numpy

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

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

a = [1  2  20  68  210  290..
     2  33 34  55  230  340..
     .. .. ... ... .... .....]
Run Code Online (Sandbox Code Playgroud)

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

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

Jos*_*del 37

我想np.ptp可能会做你想要的:

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

r = np.ptp(a,axis=1)
Run Code Online (Sandbox Code Playgroud)

r你的范围数组在哪里.

  • `axis = 1`是什么意思? (5认同)

小智 6

尝试这个:

def range_of_vals(x, axis=0):
    return np.max(x, axis=axis) - np.min(x, axis=axis)
Run Code Online (Sandbox Code Playgroud)

  • 你不应该将你的函数称为“range”,因为已经有一个名为 range 的内置函数。 (5认同)