python numpy从多个文件创建数组

2024-09-28 21:29:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有50个研究对象,他们提供了六个任务的反应时间数据。我将每个受试者在一个任务上的平均反应时间存储为一个.npy文件(50个受试者*6个任务=300个文件),我希望得到每个任务的组平均值。理想情况下,这将为组生成6个文件。在

换句话说,我想用单个的.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)

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


Tags: 文件infortasknp数组arraytasks
1条回答
网友
1楼 · 发布于 2024-09-28 21:29:32

每次都要重新创建一个新数组,因为它在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纽比矩阵表示出来呢?在

相关问题 更多 >