Was the range() function ever created?
![](https://secure.gravatar.com/avatar/ce8deaa889ea8b4436cbd2802de395ea.jpg?s=120&d=mm&r=g)
Hello all, I am want to calculate the range of a vector. I saw that someone asked for range() in 2011, but was it ever created? https://github.com/pandas-dev/pandas/issues/288 Response at the time was to use df.describe(). But df.describe() gives all the 5-number summary statistics, but I DON'T WANT wall the extra stuff I didn't ask for. I was expected a numerical number. I can use that to feed into another function. It exists in Matlab and R, why not in Python? I'm quite frustrated every time I need to calculate the range. Thanks in advance.
![](https://secure.gravatar.com/avatar/697900d3a29858ea20cc109a2aee0af6.jpg?s=120&d=mm&r=g)
This is the numpy discussion list, not the pandas discussion list. Now, for numpy's part, I have had hankerings for a `np.minmax()` ufunc, but never enough to get over just calling min and max on my data separately. On Fri, May 24, 2019 at 10:27 PM C W <tmrsg11@gmail.com> wrote:
Hello all,
I am want to calculate the range of a vector. I saw that someone asked for range() in 2011, but was it ever created? https://github.com/pandas-dev/pandas/issues/288
Response at the time was to use df.describe(). But df.describe() gives all the 5-number summary statistics, but I DON'T WANT wall the extra stuff I didn't ask for. I was expected a numerical number. I can use that to feed into another function.
It exists in Matlab and R, why not in Python? I'm quite frustrated every time I need to calculate the range.
Thanks in advance.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
![](https://secure.gravatar.com/avatar/ce8deaa889ea8b4436cbd2802de395ea.jpg?s=120&d=mm&r=g)
When I looked up pandas mailing list. Numpy showed up. Maybe is because Pandas is built on Numpy? My apologies. Yes, please do. For people with statistical background, but not CS. It seems strange the *real* range() function is used to generate natural numbers. Thanks, Ben! On Fri, May 24, 2019 at 10:34 PM Benjamin Root <ben.v.root@gmail.com> wrote:
This is the numpy discussion list, not the pandas discussion list. Now, for numpy's part, I have had hankerings for a `np.minmax()` ufunc, but never enough to get over just calling min and max on my data separately.
On Fri, May 24, 2019 at 10:27 PM C W <tmrsg11@gmail.com> wrote:
Hello all,
I am want to calculate the range of a vector. I saw that someone asked for range() in 2011, but was it ever created? https://github.com/pandas-dev/pandas/issues/288
Response at the time was to use df.describe(). But df.describe() gives all the 5-number summary statistics, but I DON'T WANT wall the extra stuff I didn't ask for. I was expected a numerical number. I can use that to feed into another function.
It exists in Matlab and R, why not in Python? I'm quite frustrated every time I need to calculate the range.
Thanks in advance.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
![](https://secure.gravatar.com/avatar/697900d3a29858ea20cc109a2aee0af6.jpg?s=120&d=mm&r=g)
pandas is not built on numpy (at least, not anymore), but borrows a lot of inspirations from numpy, and interacts with numpy fairly well. As part of the scipy ecosystem, we all work together to improve interoperability and features. python's built-in range() function has been there long before numpy came on the scene, so it just made sense to adopt that name since it was the way to generate numbers in python. Ben On Fri, May 24, 2019 at 10:44 PM C W <tmrsg11@gmail.com> wrote:
When I looked up pandas mailing list. Numpy showed up. Maybe is because Pandas is built on Numpy? My apologies.
Yes, please do. For people with statistical background, but not CS. It seems strange the *real* range() function is used to generate natural numbers.
Thanks, Ben!
On Fri, May 24, 2019 at 10:34 PM Benjamin Root <ben.v.root@gmail.com> wrote:
This is the numpy discussion list, not the pandas discussion list. Now, for numpy's part, I have had hankerings for a `np.minmax()` ufunc, but never enough to get over just calling min and max on my data separately.
On Fri, May 24, 2019 at 10:27 PM C W <tmrsg11@gmail.com> wrote:
Hello all,
I am want to calculate the range of a vector. I saw that someone asked for range() in 2011, but was it ever created? https://github.com/pandas-dev/pandas/issues/288
Response at the time was to use df.describe(). But df.describe() gives all the 5-number summary statistics, but I DON'T WANT wall the extra stuff I didn't ask for. I was expected a numerical number. I can use that to feed into another function.
It exists in Matlab and R, why not in Python? I'm quite frustrated every time I need to calculate the range.
Thanks in advance.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
![](https://secure.gravatar.com/avatar/ce8deaa889ea8b4436cbd2802de395ea.jpg?s=120&d=mm&r=g)
I can't be the first person who asked about range() that calculates the *actual* range of two numbers. I have not used numpy or pandas long enough to know, but how has it been dealt with before? On Fri, May 24, 2019 at 11:10 PM Benjamin Root <ben.v.root@gmail.com> wrote:
pandas is not built on numpy (at least, not anymore), but borrows a lot of inspirations from numpy, and interacts with numpy fairly well. As part of the scipy ecosystem, we all work together to improve interoperability and features.
python's built-in range() function has been there long before numpy came on the scene, so it just made sense to adopt that name since it was the way to generate numbers in python.
Ben
On Fri, May 24, 2019 at 10:44 PM C W <tmrsg11@gmail.com> wrote:
When I looked up pandas mailing list. Numpy showed up. Maybe is because Pandas is built on Numpy? My apologies.
Yes, please do. For people with statistical background, but not CS. It seems strange the *real* range() function is used to generate natural numbers.
Thanks, Ben!
On Fri, May 24, 2019 at 10:34 PM Benjamin Root <ben.v.root@gmail.com> wrote:
This is the numpy discussion list, not the pandas discussion list. Now, for numpy's part, I have had hankerings for a `np.minmax()` ufunc, but never enough to get over just calling min and max on my data separately.
On Fri, May 24, 2019 at 10:27 PM C W <tmrsg11@gmail.com> wrote:
Hello all,
I am want to calculate the range of a vector. I saw that someone asked for range() in 2011, but was it ever created? https://github.com/pandas-dev/pandas/issues/288
Response at the time was to use df.describe(). But df.describe() gives all the 5-number summary statistics, but I DON'T WANT wall the extra stuff I didn't ask for. I was expected a numerical number. I can use that to feed into another function.
It exists in Matlab and R, why not in Python? I'm quite frustrated every time I need to calculate the range.
Thanks in advance.
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
![](https://secure.gravatar.com/avatar/f246a75a3ed39b6b92079ae0fa9e5852.jpg?s=120&d=mm&r=g)
On Sat, 25 May 2019, at 1:49 PM, C W wrote:
I can't be the first person who asked about range() that calculates the *actual* range of two numbers.
Based on your mention of matlab's `range`, I think you're looking for numpy.ptp. https://docs.scipy.org/doc/numpy/reference/generated/numpy.ptp.html
![](https://secure.gravatar.com/avatar/764323a14e554c97ab74177e0bce51d4.jpg?s=120&d=mm&r=g)
On Fri, May 24, 2019 at 8:50 PM C W <tmrsg11@gmail.com> wrote:
I can't be the first person who asked about range() that calculates the *actual* range of two numbers.
I have not used numpy or pandas long enough to know, but how has it been dealt with before?
First, through `describe()`, then they added `value_range()`, then they deprecated `value_range()` in favor of `describe()` again. https://github.com/pandas-dev/pandas/commit/e66d25e9f082c93bb4bab3caf2a4fdc8... http://pandas.pydata.org/pandas-docs/version/0.16.0/whatsnew.html#removal-of... You can ask on the pandas-dev mailing list why: https://mail.python.org/mailman/listinfo/pandas-dev As for numpy, trying to come up with the right semantics for the shape of the output is usually when such discussions die. Functions like a statistical range calculation are expected to be like `min()` and `max()` and allow us to apply them axis-wise (e.g. just down columns or just across rows, or more any other axis in an N-D array). Odds are, the way that we'll pack the two results into a single output will probably not be what you want in half of the cases, so you'll just have to unpack anyways, and at that point, it's just not *that* much more convenient than calling `min()` and `max()` separately. So every time we write `xmin, xmax = x.min(), x.max()`, we grumble a little bit, but it's just a grumble, not a significant pain. pandas has other considerations, but you'll have to ask them. -- Robert Kern
![](https://secure.gravatar.com/avatar/ce8deaa889ea8b4436cbd2802de395ea.jpg?s=120&d=mm&r=g)
Thank you, Robert. I will take it up to the Pandas-dev mailing list. I'm not sure if I follow you on "right semantics for the shape of the output." Range is just a summary statistic which is a number. I'm not an expert, but wouldn't something like this do? def range(vec): return np.max(vec) - np.min(vec) On Sat, May 25, 2019 at 12:06 AM Robert Kern <robert.kern@gmail.com> wrote:
On Fri, May 24, 2019 at 8:50 PM C W <tmrsg11@gmail.com> wrote:
I can't be the first person who asked about range() that calculates the *actual* range of two numbers.
I have not used numpy or pandas long enough to know, but how has it been dealt with before?
First, through `describe()`, then they added `value_range()`, then they deprecated `value_range()` in favor of `describe()` again.
https://github.com/pandas-dev/pandas/commit/e66d25e9f082c93bb4bab3caf2a4fdc8...
http://pandas.pydata.org/pandas-docs/version/0.16.0/whatsnew.html#removal-of...
You can ask on the pandas-dev mailing list why: https://mail.python.org/mailman/listinfo/pandas-dev
As for numpy, trying to come up with the right semantics for the shape of the output is usually when such discussions die. Functions like a statistical range calculation are expected to be like `min()` and `max()` and allow us to apply them axis-wise (e.g. just down columns or just across rows, or more any other axis in an N-D array). Odds are, the way that we'll pack the two results into a single output will probably not be what you want in half of the cases, so you'll just have to unpack anyways, and at that point, it's just not *that* much more convenient than calling `min()` and `max()` separately. So every time we write `xmin, xmax = x.min(), x.max()`, we grumble a little bit, but it's just a grumble, not a significant pain.
pandas has other considerations, but you'll have to ask them.
-- Robert Kern _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
![](https://secure.gravatar.com/avatar/764323a14e554c97ab74177e0bce51d4.jpg?s=120&d=mm&r=g)
On Fri, May 24, 2019 at 9:33 PM C W <tmrsg11@gmail.com> wrote:
Thank you, Robert. I will take it up to the Pandas-dev mailing list.
I'm not sure if I follow you on "right semantics for the shape of the output." Range is just a summary statistic which is a number.
I'm not an expert, but wouldn't something like this do? def range(vec): return np.max(vec) - np.min(vec)
Oh.You referenced the R range() function, which returns the minimum and the maximum as separate numbers, not their difference. https://www.rdocumentation.org/packages/base/versions/3.6.0/topics/range And the pandas issue that you referenced was asking for the same. In fact, numpy does have the function you are looking for, as Juan noted. It's called `ptp()` (early numpy developers tended to be more from a signal processing background than a statistics background). -- Robert Kern
![](https://secure.gravatar.com/avatar/ce8deaa889ea8b4436cbd2802de395ea.jpg?s=120&d=mm&r=g)
I somehow missed Juan's reply. Yes, I think Juan solved the problem. Thanks, Juan! On Sat, May 25, 2019 at 12:57 AM Robert Kern <robert.kern@gmail.com> wrote:
On Fri, May 24, 2019 at 9:33 PM C W <tmrsg11@gmail.com> wrote:
Thank you, Robert. I will take it up to the Pandas-dev mailing list.
I'm not sure if I follow you on "right semantics for the shape of the output." Range is just a summary statistic which is a number.
I'm not an expert, but wouldn't something like this do? def range(vec): return np.max(vec) - np.min(vec)
Oh.You referenced the R range() function, which returns the minimum and the maximum as separate numbers, not their difference.
https://www.rdocumentation.org/packages/base/versions/3.6.0/topics/range
And the pandas issue that you referenced was asking for the same.
In fact, numpy does have the function you are looking for, as Juan noted. It's called `ptp()` (early numpy developers tended to be more from a signal processing background than a statistics background).
-- Robert Kern _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion
participants (4)
-
Benjamin Root
-
C W
-
Juan Nunez-Iglesias
-
Robert Kern