Advertisement
Guest User

Untitled

a guest
May 29th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. """
  2. ===================================
  3. WIP Prepare multiconditions events
  4. ===================================
  5. """
  6. # Authors: Jean-Remi King <jeanremi.king@gmail.com>
  7. #
  8. # License: BSD (3-clause)
  9.  
  10.  
  11. import pandas as pd
  12. import numpy as np
  13.  
  14. import mne
  15. from mne.datasets import sample
  16.  
  17. print(__doc__)
  18.  
  19.  
  20. class _BaseEvents():
  21. def __init__(self, events_array, event_id=None):
  22. # Set default fields in pandas.DataFrame format
  23. data = [dict(_start=start, _length=length, _value=value)
  24. for start, length, value in events_array]
  25. # Set additional fields defined by event_id
  26. if event_id is not None:
  27. for i in range(len(data)):
  28. for key in event_id.keys():
  29. data[i][key] = data[i]['_value'] in event_id[key]
  30. self._data = pd.DataFrame(data)
  31.  
  32. def __repr__(self):
  33. return self._data.__repr__()
  34.  
  35. def __getitem__(self, key):
  36. # For backward compatibility
  37. if type(key) in [slice, np.ndarray, tuple]:
  38. # XXX JRK: there's probably a more elegant way to get this with pd
  39. _data = np.vstack([np.array(self._data['_start']),
  40. np.array(self._data['_length']),
  41. np.array(self._data['_value'])]).T
  42. return _data.__getitem__(key)
  43. elif type(key) in [list, int]:
  44. return self._data.iloc[key]
  45. else:
  46. return self._data[key]
  47.  
  48. # Setup data
  49. data_path = sample.data_path()
  50. events_fname = data_path + '/MEG/sample/sample_audvis_filt-0-40_raw-eve.fif'
  51. events = mne.read_events(events_fname)
  52. event_id = {'Audio': [1, 2], 'Visual': [3, 4],
  53. 'Left': [1, 3], 'Right': [2, 4]}
  54.  
  55. events_df = _BaseEvents(events, event_id)
  56. print events_df
  57. print np.where(events_df['Audio'])[0]
  58. print np.where(events_df['Visual' and 'Left'])[0]
  59. print events_df[:, 2]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement