2016-05-09 3 views
0

Ich habe die Matplotlib-Funktion plt.hist verwendet, um Histogrammdaten aus einem Array von Werten mV zu generieren. Dieser arbeitete in der Vergangenheit in Ordnung, aber seitdem ich meine Version von Anaconda aktualisiert haben wirft es eine ValueError zurück:numpy.histogram schlägt nach dem Aktualisieren von Anaconda fehl

--------------------------------------------------------------------------- 
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 

Keiner der Werte in mV negativ ist, wie war das Problem here:

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

Das Update war ich tat:

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) 

Vielen Dank im Voraus für jede Hilfe dieses Problem zu lösen.

Antwort

0

Filtern Sie alle Nan und Inf aus Ihren Daten, bevor Sie das Histogramm zeichnen. Siehe den Fehlerbericht here.