How to remove RunTimeWarning Errors from code?
Asked Answered
S

1

12

I keep getting RuntimeWarning when I run the regression code at the very bottom. I am not sure how to fix them. I believe it may be the attencoef list because there is some nan values in it. Any suggestions?

These are the errors I am getting:

C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_stats_mstats_common.py:106: RuntimeWarning: invalid value encountered in double_scalars
  slope = r_num / ssxm
C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_stats_mstats_common.py:116: RuntimeWarning: invalid value encountered in sqrt
  t = r * np.sqrt(df / ((1.0 - r + TINY)*(1.0 + r + TINY)))
C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in greater
  return (self.a < x) & (x < self.b)
C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:879: RuntimeWarning: invalid value encountered in less
  return (self.a < x) & (x < self.b)
C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_distn_infrastructure.py:1818: RuntimeWarning: invalid value encountered in less_equal
  cond2 = cond0 & (x <= self.a)
C:\Users\MTM User\Anaconda3\lib\site-packages\scipy\stats\_stats_mstats_common.py:118: RuntimeWarning: invalid value encountered in double_scalars
  sterrest = np.sqrt((1 - r**2) * ssym / ssxm / df)

The code:

for depthvalues in split_depth.values(): # only takes the values (separated lists), removes keys

    # takes into account the number of yows
    count+=1

    depthlst = depthvalues
    depthfirst = depthlst[0] #find my first depth or deepest depth
    depthlast = depthlst[-1] # find my last depth, or shallowest

    depthfirst_index = depth.index(depthfirst) #finds the index of my deepest depth for this segment in the filtered lists
    depthlast_index = depth.index(depthlast) #finds the index of my shallowest depth for this segment in the filtered lists

    irradlst = irrad[depthfirst_index:depthlast_index+1]

    irrad_first = irradlst[0] #finds the corresponding irradiance
    irrad_last = irradlst[-1] 
    irrad_last = float(irrad_last)

    irradlst = np.array(irradlst).astype(np.float)
    depthlst = np.array(depthlst).astype(np.float)

    attencoef = [np.log(i/irrad_last) for i in irradlst]

    #whenever I use this line of code(below) I get a bunch of errors
    regress = linregress(attencoef,depthlst) 
Stephniestepladder answered 5/7, 2017 at 18:28 Comment(1)
Is i/irrad_last giving you a very large number? Something that would make np.log produce float('inf')?Sperry
P
29

You should filter the warning with:

import warnings
warnings.filterwarnings("ignore", category=RuntimeWarning) 

The category is the type of warning you want to silence.

Pedal answered 5/7, 2017 at 18:41 Comment(2)
This will suppress warnings, which is usually not the best idea.Bollworm
Which is what the title of the question asks... But yes, it is better idea to see in first place why you get the RuntimeWarnings in first place to prevent them from appearing.Pedal

© 2022 - 2024 — McMap. All rights reserved.