我有50个研究对象,他们提供了六项任务的反应时间数据。我将每个主题的平均反应时间存储在任务上作为.npy文件(50个主题* 6个任务= 300个文件),我希望得到每个任务的组均值。理想情况下,这将为该组生成六个文件。
换句话说,我想用一些单独的.npy文件填充一个numpy数组,但是我最好的方法就是这样做了。我有想法为每个任务初始化一个空数组,用主题值填充它,然后得到平均值。
subjects=range(1,51)
tasks=['a','b','c','d','e','f']
datalist=[]
for subject in subjects:
for task in tasks:
array=np.array(datalist)
f=np.load('%d/%s.npy' % (subject,event))
result=np.append(array,f)
mu=np.mean(result)
sav=np.save('%s' %(task),mu)
此代码的结果是系列中的最后一个值,表示数组未正确填充。任何想法将不胜感激!
答案 0 :(得分:3)
每次都要重新创建一个新数组,因为它在for循环中。实际上,您正在创建array
,为其添加单个数组,为每个主题和每个任务添加均值,然后保存。你应该像这样组织它:
for task in tasks:
result=np.array([])
for subject in subjects:
f=np.load('%d/%s.npy' % (subject,event))
result=np.append(result,f)
mu=np.mean(result)
sav=np.save('%s' %(task),mu)
ETA:顺便说一下,存储 更多的方法来存储这些数据比在300个单独的.npy文件中更好。每项任务的每个科目只有一个值吗?在那种情况下,为什么不直接表示这个50乘6的numpy矩阵?