本文整理汇总了Python中mvpa2.datasets.base.Dataset.fa['timepoints']方法的典型用法代码示例。如果您正苦于以下问题:Python Dataset.fa['timepoints']方法的具体用法?Python Dataset.fa['timepoints']怎么用?Python Dataset.fa['timepoints']使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类mvpa2.datasets.base.Dataset
的用法示例。
在下文中一共展示了Dataset.fa['timepoints']方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: eeglab_dataset
# 需要导入模块: from mvpa2.datasets.base import Dataset [as 别名]
# 或者: from mvpa2.datasets.base.Dataset import fa['timepoints'] [as 别名]
#.........这里部分代码省略.........
raise ValueError("Input looks like a filename, but file"
" %s does not exist" % samples)
with open(samples) as f:
samples = f.read()
lines = samples.split('\n')
samples = []
cur_sample = None
for i, line in enumerate(lines):
if not line:
continue
if i == 0:
# first line contains the channel names
channel_labels = line.split()
n_channels = len(channel_labels)
else:
# first value is the time point, the remainders the value
# for each channel
values = map(float, line.split())
t = values[0] # time
eeg = values[1:] # values for each electrode
if len(eeg) != n_channels:
raise ValueError("Line %d: expected %d values but found %d" %
(n_channels, len(eeg)))
if cur_sample is None or t < prev_t:
# new sample
cur_sample = []
samples.append(cur_sample)
cur_sample.append((t, eeg))
prev_t = t
# get and verify number of elements in each dimension
n_samples = len(samples)
n_timepoints_all = map(len, samples)
n_timepoints_unique = set(n_timepoints_all)
if len(n_timepoints_unique) != 1:
raise ValueError("Different number of time points in different"
"samples: found %d different lengths" %
len(n_timepoints_unique))
n_timepoints = n_timepoints_all[0]
shape = (n_samples, n_timepoints, n_channels)
# allocate space for data
data = np.zeros(shape)
# make a list of all channels and timepoints
channel_array = np.asarray(channel_labels)
timepoint_array = np.asarray([samples[0][i][0]
for i in xrange(n_timepoints)])
dts = timepoint_array[1:] - timepoint_array[:-1]
if not np.all(dts == dts[0]):
raise ValueError("Delta time points are different")
# put the values in the data array
for i, sample in enumerate(samples):
for j, (t, values) in enumerate(sample):
# check that the time is the same
if i > 0 and timepoint_array[j] != t:
raise ValueError("Sample %d, time point %s is different "
"than the first sample (%s)" %
(i, t, timepoint_array[j]))
for k, value in enumerate(values):
data[i, j, k] = value
samples = None # and let gc do it's job
# make a Dataset instance with the data
ds = Dataset(data)
# append a flatten_mapper to go from 3D (sample X time X channel)
# to 2D (sample X (time X channel))
flatten_mapper = FlattenMapper(shape=shape[1:], space='time_channel_indices')
ds = ds.get_mapped(flatten_mapper)
# make this a 3D array of the proper size
channel_array_3D = np.tile(channel_array, (1, n_timepoints, 1))
timepoint_array_3D = np.tile(np.reshape(timepoint_array, (-1, 1)),
(1, 1, n_channels))
# for consistency use the flattan_mapper defined above to
# flatten channel and timepoint names as well
ds.fa['channelids'] = flatten_mapper.forward(channel_array_3D).ravel()
ds.fa['timepoints'] = flatten_mapper.forward(timepoint_array_3D).ravel()
# make some dynamic properties
# XXX at the moment we don't have propert 'protection' in case
# the feature space is sliced in a way so that some channels and/or
# timepoints occur more often than others
_eeglab_set_attributes(ds)
return ds