Finding range of a numpy array elements
Question:
I have a NumPy array of size 94 x 155:
a = [1 2 20 68 210 290..
2 33 34 55 230 340..
.. .. ... ... .... .....]
I want to calculate the range of each row, so that I get 94 ranges in a result. I tried looking for a numpy.range
function, which I don’t think exists. If this can be done through a loop, that’s also fine.
I’m looking for something like numpy.mean
, which, if we set the axis parameter to 1, returns the mean for each row in the N-dimensional array.
Answers:
I think np.ptp
might do what you want:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ptp.html
r = np.ptp(a,axis=1)
where r
is your range array.
Try this:
def range_of_vals(x, axis=0):
return np.max(x, axis=axis) - np.min(x, axis=axis)
I have a NumPy array of size 94 x 155:
a = [1 2 20 68 210 290..
2 33 34 55 230 340..
.. .. ... ... .... .....]
I want to calculate the range of each row, so that I get 94 ranges in a result. I tried looking for a numpy.range
function, which I don’t think exists. If this can be done through a loop, that’s also fine.
I’m looking for something like numpy.mean
, which, if we set the axis parameter to 1, returns the mean for each row in the N-dimensional array.
I think np.ptp
might do what you want:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ptp.html
r = np.ptp(a,axis=1)
where r
is your range array.
Try this:
def range_of_vals(x, axis=0):
return np.max(x, axis=axis) - np.min(x, axis=axis)