RuntimeWarning:日志中遇到无效值

时间:2018-11-14 12:39:38

标签: python numpy logging

我变成这个表情: RuntimeWarning: invalid value encountered in log

尝试此操作时

def fct(a, b, c, d):
    global u1
    global u2
    if np.all(c > 0) and np.all(a > 0) and np.all(u1 != 0) and np.all(u2 != 0):
        return a, c, u1, u2

    u1, u2 = np.log(0.6*c), (math.e**d)**0.5
    F = np.log(a**2) + 6*[math.e**(-b)]/u1 + 3/u2
    print( F )

任何想法?

1 个答案:

答案 0 :(得分:0)

此错误消息可能出现在您的代码包含的两个表达式中:

np.log(0.6*c) and np.log(a**2)

在for循环中使用:

np.random.normal()

您将在此分布中获得随机数,其值为负数

这就是np.log()会显示错误消息的原因:

RuntimeWarning: invalid value encountered in log

示例:

np.random.normal(10,4,100)

退出:

array([ 8.04664247, 14.4991884 , 10.89789303, 13.37593183,  3.29981902,
       16.6316143 , 10.64138342,  4.0459445 , 10.49192082, -3.04538967!!!!!,
       13.30443781,  4.13345961, 12.06508196, 10.4286879 ,  7.39431349,
       12.36789249,  9.20424736, 11.13161087, 12.15404482, 12.69897663,
        9.43633904, 12.77818913,  9.02926639,  4.78638573, 13.13104605,
       12.71197993,  6.1550897 ,  7.18496505,  4.3160573 ,  9.12631992,
        8.52408627, 12.45941119,  5.34780934,  5.7023213 , 13.53096085,
       12.1087058 ,  3.65110834,  5.15466232,  8.78768562, 12.54764999,
       15.12211713,  3.26481809,  9.8623701 , 15.88784306,  5.83355467,
        5.32775214,  8.81188865, 13.21886467,  6.78984216,  8.67260897,
        7.06100605, 13.75314668, 15.56562533, 10.33916552,  7.72745465,
       11.27606127, 11.56813697,  7.03177164, 10.63155512, 11.67072579,
       11.70855769, 10.78372397,  5.11327436, 15.61581808,  9.53446815,
       11.21806808, 11.2235412 ,  7.68339223, 12.71484256,  9.99613038,
       13.51834424,  7.73615596,  8.75145457, 13.02222188,  6.76757021,
       13.03580839, 10.67504642, 15.36110384, 15.66816384, -0.0952157 !!!!!!!! ,
        2.23551198, 11.21584659,  4.37791786,  5.45895529, 15.44411348,
       14.7077441 , 14.52080519,  3.70418827,  5.03132122,  5.24810117,
       16.35309566,  7.08504246,  6.81224092, 14.69274684,  8.43257572,
       12.87468578,  7.01621364,  7.62879265,  7.14646032, 20.16254855])

进入np.log()

中的功能
c = np.array([ 8.04664247, 14.4991884 , 10.89789303, 13.37593183,  3.29981902,
       16.6316143 , 10.64138342,  4.0459445 , 10.49192082, -3.04538967,
       13.30443781,  4.13345961, 12.06508196, 10.4286879 ,  7.39431349,
       12.36789249,  9.20424736, 11.13161087, 12.15404482, 12.69897663,
        9.43633904, 12.77818913,  9.02926639,  4.78638573, 13.13104605,
       12.71197993,  6.1550897 ,  7.18496505,  4.3160573 ,  9.12631992,
        8.52408627, 12.45941119,  5.34780934,  5.7023213 , 13.53096085,
       12.1087058 ,  3.65110834,  5.15466232,  8.78768562, 12.54764999,
       15.12211713,  3.26481809,  9.8623701 , 15.88784306,  5.83355467,
        5.32775214,  8.81188865, 13.21886467,  6.78984216,  8.67260897,
        7.06100605, 13.75314668, 15.56562533, 10.33916552,  7.72745465,
       11.27606127, 11.56813697,  7.03177164, 10.63155512, 11.67072579,
       11.70855769, 10.78372397,  5.11327436, 15.61581808,  9.53446815,
       11.21806808, 11.2235412 ,  7.68339223, 12.71484256,  9.99613038,
       13.51834424,  7.73615596,  8.75145457, 13.02222188,  6.76757021,
       13.03580839, 10.67504642, 15.36110384, 15.66816384, -0.0952157 ,
        2.23551198, 11.21584659,  4.37791786,  5.45895529, 15.44411348,
       14.7077441 , 14.52080519,  3.70418827,  5.03132122,  5.24810117,
       16.35309566,  7.08504246,  6.81224092, 14.69274684,  8.43257572,
       12.87468578,  7.01621364,  7.62879265,  7.14646032, 20.16254855])

print(np.log(0.6*c))

退出:

[1.5744293  2.16326705 1.87774385 2.08263134 0.683042   2.30047974
 1.85392487 0.8868894  1.83977989    nan!!!! 2.07727203 0.90828911
 1.97948987 1.83373484 1.48988563 2.00427818 1.70883942 1.89896326
 1.9868364  2.03069579 1.73374247 2.03691412 1.6896455  1.05494996
 2.06415373 2.03171923 1.30645371 1.46116503 0.9515167  1.70033691
 1.63207021 2.01165063 1.16586138 1.23004771 2.09415483 1.98309906
 0.78420515 1.12907599 1.66252576 2.01870777 2.20533276 0.67237842
 1.77790089 2.25472861 1.25280091 1.16210379 1.66527617 2.07081933
 1.40460207 1.64934404 1.44376192 2.11044202 2.23423935 1.82511354
 1.5339539  1.91185638 1.93742888 1.43961306 1.85300085 1.94625801
 1.94949438 1.86721233 1.12101435 2.23745876 1.74408784 1.90670008
 1.90718784 1.52823552 2.03194439 1.79137243 2.09322197 1.53507929
 1.6583943  2.05583165 1.40131649 2.05687444 1.85708328 2.22101297
 2.24080525   nan!!!!! 0.29364465 1.90650203 0.96574761 1.18643181
 2.2264023  2.17754854 2.16475684 0.79863852 1.10485699 1.14704071
 2.28359159 1.44716024 1.40789551 2.17652834 1.62127664 2.04443742
 1.43739808 1.52110397 1.45579155 2.49300123]
/untitled0.py:37: RuntimeWarning: invalid value encountered in log