2
我正在做一些規範化操作,令我驚訝的是,當試圖恢復操作時,我得到了默認的6位小數精度爲assert_array_almost_equal
的100%不匹配。爲什麼會發生?這可能是由於我的最大值的精度?如果是這樣,我如何才能在numpy.ndarray.max()
中獲得更高的精度?恢復規範化操作時的精度問題
from __future__ import division
import numpy
_max = numpy.float128(67.1036) # output of numpy.ndarray.max() on an a float32 array
def divide_and_mult(x, y):
return numpy.divide(numpy.float128(x), y) * y
for i in range(100):
try: numpy.testing.assert_array_equal(divide_and_mult(i, _max), numpy.float128(i))
except AssertionError, e: print e
「assert_array_equal」的默認6位小數精度< - 我想你一定會把'assert_array_equal'函數與其他東西混淆。沒有這樣的默認值:'assert_array_equal'檢查_exact_相等,沒有容差。 –
是的,你是對的馬克,我指的是numpy.testing中的'assert_array_almost_equal'函數,我在另一個實驗中使用它來查看不匹配百分比。 –