本文整理匯總了Python中math.isfinite方法的典型用法代碼示例。如果您正苦於以下問題:Python math.isfinite方法的具體用法?Python math.isfinite怎麽用?Python math.isfinite使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類math
的用法示例。
在下文中一共展示了math.isfinite方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: coerce_output
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def coerce_output(self, value: Any) -> float:
"""
Coerce the resolved value for output.
:param value: value to coerce
:type value: Any
:return: the coerced value
:rtype: float
"""
# pylint: disable=no-self-use
try:
result = value
if value and isinstance(value, str):
result = float(value)
if not isfinite(result):
raise ValueError
return result if isinstance(result, float) else float(result)
except Exception: # pylint: disable=broad-except
pass
raise TypeError(
f"Float cannot represent non numeric value: < {value} >."
)
示例2: coerce_input
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def coerce_input(self, value: Any) -> float:
"""
Coerce the user input from variable value.
:param value: value to coerce
:type value: Any
:return: the coerced value
:rtype: float
"""
# pylint: disable=no-self-use
# ¯\_(ツ)_/¯ booleans are int: `assert isinstance(True, int) is True`
try:
if not isinstance(value, bool) and isfinite(value):
return float(value)
except Exception: # pylint: disable=broad-except
pass
raise TypeError(
f"Float cannot represent non numeric value: < {value} >."
)
示例3: coerce_output
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def coerce_output(self, value: Any) -> bool:
"""
Coerce the resolved value for output.
:param value: value to coerce
:type value: Any
:return: the coerced value
:rtype: bool
"""
# pylint: disable=no-self-use
if isinstance(value, bool):
return value
try:
if isfinite(value):
return bool(value)
except Exception: # pylint: disable=broad-except
pass
raise TypeError(
f"Boolean cannot represent a non boolean value: < {value} >."
)
示例4: _number_literal_format
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def _number_literal_format(translator, expr):
value = expr.op().value
if math.isfinite(value):
# Spark interprets dotted number literals as decimals, not floats.
# i.e. "select 1.0 as tmp" is a decimal(2,1), not a float or double
if isinstance(expr.op().dtype, dt.Float64):
formatted = "{}d".format(repr(value))
elif isinstance(expr.op().dtype, dt.Floating):
formatted = "CAST({} AS FLOAT)".format(repr(value))
else:
formatted = repr(value)
else:
if math.isnan(value):
formatted_val = 'NaN'
elif math.isinf(value):
if value > 0:
formatted_val = 'Infinity'
else:
formatted_val = '-Infinity'
formatted = "CAST({!r} AS DOUBLE)".format(formatted_val)
return formatted
示例5: _number_literal_format
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def _number_literal_format(translator, expr):
value = expr.op().value
if math.isfinite(value):
formatted = repr(value)
else:
if math.isnan(value):
formatted_val = 'NaN'
elif math.isinf(value):
if value > 0:
formatted_val = 'Infinity'
else:
formatted_val = '-Infinity'
formatted = "CAST({!r} AS DOUBLE)".format(formatted_val)
return formatted
示例6: defuzzify
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def defuzzify(self, term: Term, minimum: float, maximum: float) -> float:
if not math.isfinite(minimum + maximum):
return nan
resolution = self.resolution
dx = (maximum - minimum) / resolution
counter = resolution
left = right = 0
x_left, x_right = (minimum, maximum)
left_area = right_area = 0.0
# TODO: Improve?
while counter > 0:
counter = counter - 1
if left_area <= right_area:
x_left = minimum + (left + 0.5) * dx
left_area += term.membership(x_left)
left += 1
else:
x_right = maximum - (right + 0.5) * dx
right_area += term.membership(x_right)
right += 1
# Inverse weighted average to compensate
return (left_area * x_right + right_area * x_left) / (left_area + right_area)
示例7: test_decimal_from_float
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def test_decimal_from_float(f):
d = Decimal(f)
if isfinite(f) and d.is_finite():
try:
# PDF is limited to ~5 sig figs
decstr = str(d.quantize(Decimal('1.000000')))
except InvalidOperation:
return # PDF doesn't support exponential notation
try:
py_d = Object.parse(decstr)
except RuntimeError as e:
if 'overflow' in str(e) or 'underflow' in str(e):
py_d = Object.parse(str(f))
assert isclose(py_d, d, abs_tol=1e-5), (d, f.hex())
else:
with pytest.raises(PdfError):
Object.parse(str(d))
示例8: update
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def update(self, candle):
self._adl.update(candle)
adl = self._adl.v()
if not isfinite(adl):
return
self._shortEMA.update(adl)
self._longEMA.update(adl)
short = self._shortEMA.v()
long = self._longEMA.v()
if (isfinite(short) and isfinite(long)):
super().update(short - long)
return self.v()
示例9: add
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def add(self, candle):
self._adl.add(candle)
adl = self._adl.v()
if not isfinite(adl):
return
self._shortEMA.add(adl)
self._longEMA.add(adl)
short = self._shortEMA.v()
long = self._longEMA.v()
if (isfinite(short) and isfinite(long)):
super().add(short - long)
return self.v()
示例10: add
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def add(self, v):
self._roc.add(v)
roc = self._roc.v()
if not isfinite(roc):
return
if len(self._buffer) == self._p:
super().add(roc - self._buffer[0])
self._buffer.append(roc)
if len(self._buffer) > self._p:
del self._buffer[0]
return self.v()
示例11: add
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def add(self, v):
slowEMA = self._slowEMA.add(v)
fastEMA = self._fastEMA.add(v)
if not isfinite(slowEMA) or not isfinite(fastEMA):
return
macd = fastEMA - slowEMA
signalEMA = self._signalEMA.add(macd)
if not isfinite(signalEMA):
return
histogram = macd - signalEMA
super().add({
'macd': macd,
'signal': signalEMA,
'histogram': histogram
})
return self.v()
示例12: update
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def update(self, v):
if self._prevInputValue == None:
return self.v()
self._stddev.update(v)
stddev = self._stddev.v()
if not isfinite(stddev):
return self.v()
[u, d] = RVI.ud(v, self._prevInputValue, stddev)
self._uEMA.update(u)
self._dEMA.update(d)
uSum = self._uEMA.v()
dSum = self._dEMA.v()
if uSum == dSum:
return super().update(0)
else:
return super().update(100 * (uSum / (uSum + dSum)))
示例13: rvs
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def rvs(self) -> float:
"""
Will return a float value in the specified range as specified at creation.
:return: a float.
"""
if self.hard_clip_min is None and self.hard_clip_max is None:
result = float(np.random.normal(self._mean, self._std))
else:
a = -np.inf
b = np.inf
if self.hard_clip_min is not None:
a = (self.hard_clip_min - self._mean) / self._std
if self.hard_clip_max is not None:
b = (self.hard_clip_max - self._mean) / self._std
result = truncnorm.rvs(a=a, b=b, loc=self._mean, scale=self._std)
if not math.isfinite(result):
return self.rvs()
return float(result)
示例14: intersection
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def intersection(p1, p2, q1, q2, ret):
px = p1.y - p2.y
py = p2.x - p1.x
pw = p1.x * p2.y - p2.x * p1.y
qx = q1.y - q2.y
qy = q2.x - q1.x
qw = q1.x * q2.y - q2.x * q1.y
x = py * qw - qy * pw
y = qx * pw - px * qw
w = px * qy - qx * py
xInt = x / w
yInt = y / w
if not isfinite(xInt) or not isfinite(yInt):
raise ArithmeticError()
ret.x, ret.y = xInt, yInt
示例15: mean_average_precision_score
# 需要導入模塊: import math [as 別名]
# 或者: from math import isfinite [as 別名]
def mean_average_precision_score(gold, pred, callback=None):
total, count = 0., 0
for question in gold.values():
if question.id in pred:
ranks = compute_ranks(list(question.explanations), pred[question.id])
score = average_precision(ranks)
if not math.isfinite(score):
score = 0.
total += score
count += 1
if callback:
callback(question.id, score)
mean_ap = total / count if count > 0 else 0.
return mean_ap