pynapple.TsdFrame.count#

TsdFrame.count(bin_size=None, ep=None, time_units='s', dtype=None)[source]#

Count occurences of events within bin_size or within a set of bins defined as an IntervalSet. You can call this function in multiple ways :

1. tsd.count(bin_size=1, time_units = ‘ms’) -> Count occurence of events within a 1 ms bin defined on the time support of the object.

2. tsd.count(1, ep=my_epochs) -> Count occurent of events within a 1 second bin defined on the IntervalSet my_epochs.

3. tsd.count(ep=my_bins) -> Count occurent of events within each epoch of the intervalSet object my_bins

4. tsd.count() -> Count occurent of events within each epoch of the time support.

bin_size should be seconds unless specified. If bin_size is used and no epochs is passed, the data will be binned based on the time support of the object.

Parameters:
  • bin_size (None or float, optional) – The bin size (default is second)

  • ep (None or IntervalSet, optional) – IntervalSet to restrict the operation

  • time_units (str, optional) – Time units of bin size (‘us’, ‘ms’, ‘s’ [default])

  • dtype (type, optional) – Data type for the count. Default is np.int64.

Returns:

out – A Tsd object indexed by the center of the bins.

Return type:

Tsd

Examples

This example shows how to count timestamps within bins of 0.1 second.

>>> import pynapple as nap
>>> import numpy as np; np.random.seed(42)
>>> t = np.unique(np.sort(np.random.randint(0, 1000, 100)))
>>> tsdframe = nap.TsdFrame(t=t, d=np.random.randn(len(t), 4), time_units='s')
>>> tsdframe
Time (s)             0           1          2           3
----------  ----------  ----------  ---------  ----------
1.0         -2.17833    -1.0439      0.172694   0.324199
13.0         0.74586    -1.83658     0.564464   0.0255007
20.0         0.473193    0.659191    2.34075    1.07099
21.0         0.0964165   0.419102   -0.953028  -1.04787
34.0        -1.87568    -1.36678     0.636305  -0.906721
58.0         0.476043    1.30366     0.211587   0.597045
71.0        -0.896335   -0.111988    1.46894   -1.1239
...
875.0        0.366909    0.209497   -0.875562  -0.234848
897.0       -0.987229   -0.491164   -1.20912    1.58914
931.0       -0.756906   -0.875079   -1.32561   -0.771205
942.0       -0.494893   -0.0494796  -0.645322  -1.60061
955.0       -1.51457     0.67966    -0.122789   0.648893
957.0        0.780275    0.15108    -1.23173    0.189585
975.0        1.3996     -0.447428    0.340615  -0.013778
dtype: float64, shape: (94, 4)

tsdframe_before is a timestamp table with data.

>>> ep = nap.IntervalSet(start = 0, end = 500, time_units = 's')
>>> ep
  index    start    end
      0        0    500
shape: (1, 2), time unit: sec.

ep is an IntervalSet object defining the epochs.

>>> bincount = tsdframe.count(10.0, ep=ep)
>>> bincount
Time (s)
----------  --
5.0          1
15.0         1
25.0         2
35.0         1
45.0         0
55.0         1
...
445.0        0
455.0        3
465.0        1
475.0        3
485.0        1
495.0        1
dtype: int64, shape: (50,)
>>> bincount.time_support
  index    start    end
      0        0    500
shape: (1, 2), time unit: sec.

bincount automatically inherits ep as time support.