更新anaconda后numpy.histogram失败

时间:2016-05-09 15:37:01

标签: python numpy matplotlib anaconda

我一直在使用matplotlib函数plt.hist从值mV数组生成直方图数据。这在过去运作良好,但自从我更新了我的anaconda版本后,它又抛回了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

mV中的所有值都不是负值,问题here也是如此:

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

我做的更新是:

    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)

提前感谢您解决此问题的任何帮助。

1 个答案:

答案 0 :(得分:0)

在绘制直方图之前,从数据中过滤掉任何nan和inf。请参阅错误报告here