mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-140938: Raise ValueError for infinite inputs to stdev/pstdev (GH-141531)
Raise ValueError for infinite inputs to stdev/pstdev --- Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
parent
1281be1caf
commit
f0a8bc737a
3 changed files with 24 additions and 5 deletions
|
|
@ -619,9 +619,14 @@ def stdev(data, xbar=None):
|
|||
if n < 2:
|
||||
raise StatisticsError('stdev requires at least two data points')
|
||||
mss = ss / (n - 1)
|
||||
try:
|
||||
mss_numerator = mss.numerator
|
||||
mss_denominator = mss.denominator
|
||||
except AttributeError:
|
||||
raise ValueError('inf or nan encountered in data')
|
||||
if issubclass(T, Decimal):
|
||||
return _decimal_sqrt_of_frac(mss.numerator, mss.denominator)
|
||||
return _float_sqrt_of_frac(mss.numerator, mss.denominator)
|
||||
return _decimal_sqrt_of_frac(mss_numerator, mss_denominator)
|
||||
return _float_sqrt_of_frac(mss_numerator, mss_denominator)
|
||||
|
||||
|
||||
def pstdev(data, mu=None):
|
||||
|
|
@ -637,9 +642,14 @@ def pstdev(data, mu=None):
|
|||
if n < 1:
|
||||
raise StatisticsError('pstdev requires at least one data point')
|
||||
mss = ss / n
|
||||
try:
|
||||
mss_numerator = mss.numerator
|
||||
mss_denominator = mss.denominator
|
||||
except AttributeError:
|
||||
raise ValueError('inf or nan encountered in data')
|
||||
if issubclass(T, Decimal):
|
||||
return _decimal_sqrt_of_frac(mss.numerator, mss.denominator)
|
||||
return _float_sqrt_of_frac(mss.numerator, mss.denominator)
|
||||
return _decimal_sqrt_of_frac(mss_numerator, mss_denominator)
|
||||
return _float_sqrt_of_frac(mss_numerator, mss_denominator)
|
||||
|
||||
|
||||
## Statistics for relations between two inputs #############################
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue