numpy.histogram fails after updating anaconda

爷,独闯天下 提交于 2020-01-17 05:29:34

问题


I have been using the matplotlib function plt.hist to generate histogram data from an array of values mV. This has worked fine in the past, but ever since I've updated my version of anaconda it throws back a ValueError:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/users/benjatin/HomeData/Code/buildSkyMap.py in <module>()
     72         #get histogram of efficiencies
     73         plt.figure()
---> 74         a=plt.hist(mV,bins=50)
     75         plt.close()
     76 

/opt/apps/lsst/feb14/Linux64/anaconda/2.1.0/lib/python2.7/site-packages/matplotlib/pyplot.pyc in hist(x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, hold, **kwargs)
   2888                       histtype=histtype, align=align, orientation=orientation,
   2889                       rwidth=rwidth, log=log, color=color, label=label,
-> 2890                       stacked=stacked, **kwargs)
   2891         draw_if_interactive()
   2892     finally:

/opt/apps/lsst/feb14/Linux64/anaconda/2.1.0/lib/python2.7/site-packages/matplotlib/axes/_axes.pyc in hist(self, x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)
   5634             # this will automatically overwrite bins,
   5635             # so that each histogram uses the same bins
-> 5636             m, bins = np.histogram(x[i], bins, weights=w[i], **hist_kwargs)
   5637             m = m.astype(float)  # causes problems later if it's an int
   5638             if mlast is None:

/opt/apps/lsst/feb14/Linux64/anaconda/2.1.0/lib/python2.7/site-packages/numpy/lib/function_base.pyc in histogram(a, bins, range, normed, weights, density)
    598                 n.imag += np.bincount(indices, weights=tmp_w.imag, minlength=bins)
    599             else:
--> 600                 n += np.bincount(indices, weights=tmp_w, minlength=bins).astype(ntype)
    601 
    602         # We now compute the bin edges since these are returned

ValueError: The first argument of bincount must be non-negative

None of the values in mV are negative, as was the problem here:

In [34]: mV[mV < 0]
Out[34]: array([], dtype=float64)

The update I did was:

    conda:     3.7.0-py27_0 --> 4.0.5-py27_0 (soft-link)
    openssl:   1.0.1h-1     --> 1.0.2h-0     (soft-link)
    python:    2.7.8-1      --> 2.7.11-0     (soft-link)
    pyyaml:    3.11-py27_0  --> 3.11-py27_1  (soft-link)
    requests:  2.4.1-py27_0 --> 2.9.1-py27_0 (soft-link)
    sqlite:    3.8.4.1-0    --> 3.9.2-0      (soft-link)
    tk:        8.5.15-0     --> 8.5.18-0     (soft-link)
    yaml:      0.1.4-0      --> 0.1.6-0      (soft-link)
    zlib:      1.2.7-0      --> 1.2.8-0      (soft-link)

Thanks in advance for any help solving this issue.


回答1:


Filter out any nan and inf from your data before plotting the histogram. See the bug report here.



来源:https://stackoverflow.com/questions/37119818/numpy-histogram-fails-after-updating-anaconda

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!