猿问

根据当前数组中每个项目的第一个元素创建新数组

如果我的术语不正确,请原谅我 - 我是新手!


我试图根据数组中每个项目中第一个元素的值来隔离某些条目,并对某些列执行一些操作。这是我正在使用的数据类型的示例:


[[1, 99, 400],

[1, 95, 200],

[2, 92, 100],

[1, 85, 500],

[2, 88, 300]]

对于每个条件,我需要分别使用 a for loop、if statement和算术计算第 2 列和第 3 列的平均值(反映在第 1 列中,其中值为 1 或 2)。


我正在尝试将上述数组拆分为每个条件的两个单独的数组,然后使用numpy.mean. 这是我希望列表的样子:


cond1 = [[1, 99, 400], [1, 95, 200], [1, 85, 500]]

cond2 = [[2, 92, 100], [2, 88, 300]]

我坚持如何根据第一个元素将这些条件分成两个新数组。这是我在谷歌上搜索切片后得到的最远距离……但我被卡住了!


for x in stim:

    if stim_acc[0]==1.0:

        np.where(stim_acc[0] = 1.0)

        cond1 = [[s,a,rt] for s, a, rt in zip(stim, acc, mrt)]

        print(cond1)

关于stim,acc和mrt:


我有几列长的数据集,从中我将刺激(现在stim)、准确性(现在acc)和平均反应时间(现在mrt)条目分离到一个新列表中(本文中的第一个)。我这样做是这样的:


stim = data[:,1]

 acc = data[:,3]

 mrt = data[:,4]


 stim_acc = [[s, a, rt] for s, a, rt in zip(stim, acc, mrt)]

 print(stim_acc)

我先发制人地命名了新列表stim_acc,因为我预见到它会变成一个列表,计算循环中每个条件的准确性。


谢谢,非常感谢您的帮助。


至尊宝的传说
浏览 128回答 3
3回答

ABOUTYOU

据我了解,您想按索引 [0] 的值将列表拆分为两个列表。如果是 1 则添加到cond1' 列表中,否则添加到cond2' 列表中。您可以使用以下代码实现此目的:cond1=[]cond2=[]for item in listoflists:    if item[0] == 1:        cond1.append(item)    else         cond2.append(item)

慕慕森

使用简单的循环,您可以显示如下方式:data=[[1, 99, 400],[1, 95, 200],[2, 92, 100],[1, 85, 500],[2, 88, 300]]groups = [], []for row in data:    groups[row[0]-1].append(row)for group in groups:    print(np.mean(group, axis=0))  # means of each column by group但是对于这种类型的任务,通常最好使用 pandas 数据框df = pd.DataFrame(data, columns=["stim", "acc", "mrt"])for value in df.stim.unique():    print(df[df.stim == value].mean())或者for i, group in df.groupby("stim"):    print(i, group.mean())(我假设您想要每个组中每列的平均值。)

慕婉清6462132

使用熊猫groupby:>>> a = [[1, 99, 400], [1, 95, 200], [2, 92, 100], [1, 85, 500], [2, 88, 300]]>>> df = pd.DataFrame(a)>>> df   0   1    20  1  99  4001  1  95  2002  2  92  1003  1  85  5004  2  88  300>>> data = df.groupby([0])>>> cond = data.groups>>> df.loc[cond[1]]   0   1    20  1  99  4001  1  95  2003  1  85  500>>> df.loc[cond[2]]   0   1    22  2  92  1004  2  88  300
随时随地看视频慕课网APP

相关分类

Python
我要回答