python - numpy从多个文件创建数组

时间:2012-08-31 18:07:01

标签: python arrays numpy

我有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)

此代码的结果是系列中的最后一个值,表示数组未正确填充。任何想法将不胜感激!

1 个答案:

答案 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矩阵?