python - 计算时代的平均值
问题描述
我正在使用 MNE Toolbox 对 Python 进行脑电图数据分析。我是一个 Python 新手,我想知道是否有办法计算一个时代的平均值?“纪元平均值”是指每一个纪元,并找到它会给出的平均曲线。(英语不是我的第一语言,所以我希望很清楚)谢谢你的帮助!
解决方案
假设每个 epoch 总共有 100 个数据点,而你有这样的 20 个 epoch。然后,您可以将这些数据重塑为(20,100)
:20 行和 100 列。你想要的是每个时代的平均值。我假设您不需要滚动平均值(移动平均线:MA);如果您需要 MA,请在评论部分留言。
让我们制作一些虚拟数据并将此逻辑应用于它。
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format = 'svg' # 'svg', 'retina'
plt.style.use('seaborn-white')
x = np.random.randn(20*100) # assume this is your original data
x = x.reshape((20,100)) # now we reshape it: here each row is an epoch
epoch_average = x.mean(axis=1)
# Plot figure to show results
show_figure = True
if show_figure:
fig, axs = plt.subplots(nrows=5, ncols=4, figsize=(12,15), sharey='row')
for i, (ax, x_epoch) in enumerate(zip(axs.flatten(), x)):
plt.sca(ax)
plt.plot(np.arange(x.shape[1]), x_epoch, 'k-', label='epoch-{}'.format(i))
plt.axhline(epoch_average[i], label='epoch-average', color='red', alpha=0.8, lw=2.0, ls='--')
plt.legend()
plt.title('Epoch-{} Average: {:.3f}'.format(str(i).zfill(2), epoch_average[i]))
plt.tight_layout()
plt.show()
fig.savefig('output.png', dpi=300)
推荐阅读
- javascript - 如何将第二个变量传递给 Vue Laravel 组件并默认设置为输入变量?
- python - 使用 Python 计算多索引数据透视表的列中的频率
- azure - 是否可以在特定资源组 ID 或名称上创建 Azure 策略
- javascript - 组件/元素没有正确放置到彼此并影响另一个元素
- reactjs - 我的反应状态在函数中不起作用,但在渲染时起作用
- linux - 是否可以绑定
在 cshell 中杀死整行? - git - Gitflow /删除每个分支中的目录
- python - 如何在多标签分类问题中将自定义权重传递给 scikit_learn 包装器(例如 KerasClassifier)
- python - 用于神经网络训练的掩码
- appium - 带有 Selenium Grid 的 Appium 导致 - GridException:无法从请求中提取功能