3 回答

TA貢獻1812條經驗 獲得超5個贊
據我了解,您想按索引 [0] 的值將列表拆分為兩個列表。如果是 1 則添加到cond1' 列表中,否則添加到cond2' 列表中。您可以使用以下代碼實現此目的:
cond1=[]
cond2=[]
for item in listoflists:
if item[0] == 1:
cond1.append(item)
else
cond2.append(item)

TA貢獻1856條經驗 獲得超17個贊
使用簡單的循環,您可以顯示如下方式:
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())
(我假設您想要每個組中每列的平均值。)

TA貢獻1804條經驗 獲得超2個贊
使用熊貓groupby:
>>> a = [[1, 99, 400],
[1, 95, 200],
[2, 92, 100],
[1, 85, 500],
[2, 88, 300]]
>>> df = pd.DataFrame(a)
>>> df
0 1 2
0 1 99 400
1 1 95 200
2 2 92 100
3 1 85 500
4 2 88 300
>>> data = df.groupby([0])
>>> cond = data.groups
>>> df.loc[cond[1]]
0 1 2
0 1 99 400
1 1 95 200
3 1 85 500
>>> df.loc[cond[2]]
0 1 2
2 2 92 100
4 2 88 300
添加回答
舉報