Changeset 478

Show
Ignore:
Timestamp:
01/20/11 14:44:18 (2 years ago)
Author:
mschmucker
Message:

worked around change in signature of numpy.historgam, trying to maintain compatibility to older versions (read: it's an ugly hack ;) )

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/signals/spikes.py

    r476 r478  
    2828import os, re, numpy 
    2929import logging 
    30 from NeuroTools import check_dependency, check_numpy_version 
     30from NeuroTools import check_dependency, check_numpy_version, check_numpy_histogram_supports_new 
    3131try: 
    3232    from NeuroTools import analysis 
     
    5555newnum = check_numpy_version() 
    5656 
     57# check whether numpy.histogram supports the deprecated "new" keyword. 
     58hist_new = True 
     59try: 
     60    numpy.histogram(numpy.array([1,2,3]), new=True) 
     61except TypeError: 
     62    hist_new = False 
    5763 
    5864class SpikeTrain(object): 
     
    360366            return numpy.nan 
    361367        else: 
    362             if newnum: 
    363                 proba_isi, xaxis = numpy.histogram(isi, bins=bins, normed=True, new=True) 
     368            if not hist_new: 
     369                proba_isi, xaxis = numpy.histogram(isi, bins=bins, normed=True) 
    364370                xaxis = xaxis[:-1] 
    365371            else: 
    366                 proba_isi, xaxis = numpy.histogram(isi, bins=bins, normed=True) 
     372                if newnum: 
     373                    proba_isi, xaxis = numpy.histogram(isi, bins=bins, normed=True, new=True) 
     374                    xaxis = xaxis[:-1] 
     375                else: 
     376                    proba_isi, xaxis = numpy.histogram(isi, bins=bins, normed=True) 
    367377            proba_isi /= numpy.sum(proba_isi) 
    368378            bin_size = xaxis[1]-xaxis[0] 
     
    550560        bins = self.time_axis(time_bin) 
    551561        if newnum: 
    552             hist, edges = numpy.histogram(self.spike_times, bins, new=newnum) 
     562            if not hist_new: 
     563                hist, edges = numpy.histogram(self.spike_times, bins) 
     564            else: 
     565                hist, edges = numpy.histogram(self.spike_times, bins, new=newnum) 
    553566        else: 
    554567            hist, edges = numpy.histogram(self.spike_times, bins) 
     
    13301343        isis          = numpy.concatenate(self.isi()) 
    13311344        if newnum: 
    1332             values, xaxis = numpy.histogram(isis, bins=bins, new=newnum) 
    1333             xaxis = xaxis[:-1] 
     1345            if not hist_new: 
     1346                values, xaxis = numpy.histogram(isis, bins=bins) 
     1347                xaxis = xaxis[:-1] 
     1348            else: 
     1349                values, xaxis = numpy.histogram(isis, bins=bins, new=newnum) 
     1350                xaxis = xaxis[:-1] 
    13341351        else: 
    13351352            values, xaxis = numpy.histogram(isis, bins=bins, new=True) 
     
    14261443        cvs = self.cv_isi(float_only=True) 
    14271444        if newnum: 
    1428             values, xaxis = numpy.histogram(cvs, bins=bins, new=newnum) 
    1429             xaxis = xaxis[:-1] 
     1445            if not hist_new: 
     1446                values, xaxis = numpy.histogram(cvs, bins=bins) 
     1447                xaxis = xaxis[:-1] 
     1448            else: 
     1449                values, xaxis = numpy.histogram(cvs, bins=bins, new=newnum) 
     1450                xaxis = xaxis[:-1] 
    14301451        else: 
    14311452            values, xaxis = numpy.histogram(cvs, bins=bins, new=True) 
     
    15761597        else: 
    15771598            if newnum: 
    1578                 values, xaxis = numpy.histogram(rates, nbins, new=newnum) 
    1579                 xaxis = xaxis[:-1] 
     1599                if not hist_new: 
     1600                    values, xaxis = numpy.histogram(rates, nbins) 
     1601                    xaxis = xaxis[:-1] 
     1602                else: 
     1603                    values, xaxis = numpy.histogram(rates, nbins, new=newnum) 
     1604                    xaxis = xaxis[:-1] 
    15801605            else: 
    15811606                values, xaxis = numpy.histogram(rates, nbins)